mysql - 选择每项的总和

标签 mysql sql select

我在 MySQL 中有一个这样的表

 1. ID, (int, autoincrement, primary)
 2. Date (timestamp)
 3. Device (int)
 4. Text (text)

对于报告,我想了解每种类型的设备有多少条记录。 例如“设备‘5’= 100 行”。

这可以通过纯 sql 命令来完成,还是我必须通过 php 循环遍历所有类型的设备并为每种类型触发选择总和查询?

我对mysql不熟悉。但我知道,OracleSQL 可以通过插入来做这样的事情。 就像 insert into table (col1,col2) (Select * From table) 就像一个 for-each。

我的想法在mysql中可行吗?

最佳答案

这是group by子句的经典用例:

SELECT   device, COUNT(*) AS num_per_device
FROM     my_table
GROUP BY device

编辑:
要回答@sgtBear 在评论中提出的后续问题,您可以通过将此查询连接到另一个查询来添加设备文本:

SELECT a.device, b.device_text, a.num_per_device
FROM   (SELECT   device, COUNT(*) AS num_per_device
        FROM     my_table
        GROUP BY device) a
JOIN   device_details b ON a.device = b.device

关于mysql - 选择每项的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24711471/

相关文章:

Laravel 4 中的 php artisan 迁移错误 PDOException

php - 无法获取sql中所有相似行的总和

mysql - 聚合函数上的 RANK OVER PARTITION BY

mysql - 如何在不使用 group by 语句的情况下选择不同的行

angular - 给占位符在 Angular 6 中选择

python - mysql.connector 使用二进制值选择查询

mysql - SQL 连接表到选定的记录

sql - 使用 2016 年之前的 tsql 功能解压缩 gzip 字段

php - 即使使用 DISTINCT,SQL SELECT 查询也会回显两次

MySQL INSERT INTO ... 值和选择