mysql - 获取 MySQL 中字符串字段的 SUM

标签 mysql sql database select group-by

我在下面有这个示例 MySQL 表:

date      |name    |invoice | quantity  | 
-------------------------------
2012-10-02 01:00|aaaa   |101 |  1
2012-10-02 01:30|aaaa   |102 |  2  
2012-10-02 01:45|aaaa   |102 |  3  

我想对日期进行GROUP BY 并得到类似的结果:

date      |  name    |invoice | freq_name | freq_quantity  | 
--------------------------------------------------
2012-10-02|  aaaa    |101     |1          | 1
2012-10-02|  aaaa    |102     |2          | 5

我已尝试执行如下聚合:

SELECT 
date, 
name, 
invoice, 
SUM(quantity) AS freq_quantity, 
SUM(name) AS freq_name
FROM table
GROUP BY date, name, invoice

freq_quantity 字段正确,而 freq_name 字符串字段不正确。

最佳答案

您不需要对名称求和,您需要对它们计数:

SELECT 
date, 
name, 
invoice, 
SUM(quantity) AS freq_quantity, 
COUNT(*) AS freq_name -- Here!
FROM table
GROUP BY date, name, invoice

关于mysql - 获取 MySQL 中字符串字段的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805965/

相关文章:

MYSQL Group_Concat 将值合并到一个字段中,但保留多行

java - 如何创建属于一个用户 SQL 的许可证值

SQL 查询,MIN 不只返回最小值

mysql - 在 MySQL 中按别名选择列

php - 在 OrderBy Eloquent 查询中获取行的排名

mysql - 如何每隔几分钟自动增加mysql表的一个字段值

mysql - csv文件格式,用于使用php上传mysql数据库中的大量数据

没有双重查询的MySQL分页?

sql - 在指定要查询的表时使用 ..(两个点)FROM

database - FILESYSTEM 与 SQLITE,同时存储高达 10M 的文件