我在尝试正确获取此查询时遇到了麻烦。
假设我有一张包含以下数据的表格:
id | xyz | code
===========================
1 | 1 | ba
2 | 1 | zz
3 | 1 | ba
1 | 1 | zz
1 | 1 | ba
2 | 1 | zz
我想得到一个“xyz”的总和,按id分组,例如
SELECT id, SUM(xyz) as mysum FROM table WHERE xyz=1 GROUP BY id
我最终会得到结果:
id | mysum
================
1 | 3
2 | 2
3 | 1
完美的。
问题是,我实际上想做的也是按“代码”列分组,这样如果说 id: 1,它有 2 个条目,代码为“ba”,那么结果会更像这:
id | mysum
================
1 | 2
2 | 1
3 | 1
这是我对mysql的有限理解让我失望的地方。因为我会考虑做这样的查询:
SELECT id, SUM(xyz) AS mysum FROM table WHERE xyz=1 GROUP BY id, code
但这显然给出了我不想要的结果。
我怎样才能做这种对列 xyz 求和的查询,而如果它已经添加了一个具有相同“代码”的查询,则忽略它?