mysql获取列总和,并且一次获取不同的值

时间:2015-04-01 12:24:20

标签: mysql mysqldump

我有这样的数据库

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的所有不同项目,并且价格将为组客户端求和。 有人能告诉我怎么做吗?任何帮助和建议都会非常明显。感谢

2 个答案:

答案 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`