我有这样的数据库
id project_id client_id price
1 1 1 200
2 2 1 123
3 2 1 100
4 1 1 87
5 1 1 143
6 1 1 100
7 3 3 123
8 3 3 99
9 4 3 86
10 4 3 43
11 4 3 145
12 4 3 155
现在我希望它能将价格列与相同的client_id相加。 为此我只是像我这样做了我的查询
Select `project_id`, SUM(`price`) FROM `table-name` GROUP BY `client_id`
这个正在对价格求和,但我在结果中只得到两个project_id。我希望结果应该是客户端ID的所有不同项目,并且价格将为组客户端求和。 有人能告诉我怎么做吗?任何帮助和建议都会非常明显。感谢
答案 0 :(得分:0)
你不应该"裸露" group by
查询中不在group by
语句中的列。
如果您想要项目列表,可以将它们放在如下列表中:
SELECT client_id, GROUP_CONCAT(project_id), SUM(price)
FROM table-name
GROUP BY client_id;
答案 1 :(得分:0)
你只有两个客户端,为什么你只得到两个记录,你可以按两列分组,
Select `project_id`, SUM(`price`) FROM `table-name` GROUP BY `client_id`, `project_id`