首页 > 解决方案 > 获取 MySQL 中字符串字段的 SUM

问题描述

我在下面有这个示例 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字段不正确。

标签: mysqlsqldatabaseselectgroup-by

解决方案


你不需要sum名字,你需要count他们:

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

推荐阅读