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

标签 mysql

我有这样的数据库

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 的所有不同项目,并且价格将为团体客户求和。 那么有人可以告诉我该怎么做吗?任何帮助和建议都将非常感激。谢谢

最佳答案

group by 查询中不应包含不在 group by 语句中的“裸”列。

如果您想要项目列表,可以将它们放在这样的列表中:

SELECT client_id, GROUP_CONCAT(project_id), SUM(price)
FROM table-name
GROUP BY client_id;

关于mysql 获取列总和并且一次获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390775/

相关文章:

mysql - 在名称包含另一个字符串的所有表中,在类文本类型的列内搜索字符串

php - 选择mysql中最后插入的行和其他条件

mysql - 加速大型数据库的 "SQL_CALC_FOUND_ROWS"SQL 查询

php - MySQL计算子元素数

php - mysql查询中的mysql查询

mysql - 内存中 SQL/NoSQL - 保持查询能力 - 可能使用 MySQL 或 SQL Server

php - 如何在php mysql中查询搜索次数

php - 通过 PHP 将 ♥ 插入 MySQL(心形)

MySql 允许使用条件字段但不允许读取

mysql - 如何创建一个在 10 天后自动更新状态的事件?