MySQL 分组与求和

标签 mysql group-by

我有一个查询返回一个看起来像这样的表:

+------+----------+-------+------+----+
| pID  | name     | month | q    | s  |
+------+----------+-------+------+----+
| 1468 | bob      |     2 |    1 | 14 |
| 1469 | bob      |     2 |    1 |  2 |
| 1470 | bob      |     2 |    1 |  9 |
| 1468 | bob      |     3 |    1 |  7 |
| 1469 | bob      |     3 |    1 |  8 |
| 1470 | bob      |     3 |    1 | 11 |
+------+----------+-------+------+----+

我希望输出为

+----------+-------+------+-----+
| name     | month | q    | sub |
+----------+-------+------+-----+
| bob      |     2 |    1 |  25 |
| bob      |     3 |    1 |  26 |
+----------+-------+------+-----+

本质上,我希望输出的前两列是 name , monthq分组依据 namemonth (在此分组中,每行它们始终具有相同的数据)并且我希望最后一列是 s 的总和分组依据 name仅有的。

谢谢。

最佳答案

应该是这样的:

SELECT name, month, q, SUM(sub)
FROM table
GROUP BY name, month, q

关于MySQL 分组与求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40165476/

相关文章:

带分组、过程和 "HAVING"的MySQL查询

php - 在 select 语句中选择一个值

mysql - 设置列值等于columnB减去columnA

php - 合并用户图片和帖子以显示为用户条目的最佳方式

mysql - 为什么我收到此错误 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException?

python - 如何访问groupby中的列? - Pandas

mysql - 如何使用 SQL-GROUP BY 查找重复行

mysql - 数据库设计需要更好的多对多解决方案

php - foreach 数组错误

python - 更有效/干净的方式来聚合数据