Mysql 结果按 sum() 排序

标签 mysql sql sum

我必须表:(id,name) 和另一个表 (id,id_name,)。

在第二个表中我有类似的内容:

1, 1, 200
2, 1, 400
3, 2, 400

在第一个表中:

1,alex
2,jason

执行查询后,我希望收到此结果:

alex,600

jason,400

这是我的查询:

SELECT tabel1.nume ,SUM(tabel2.money) FROM tabel2 JOIN tabel2 
    ON tabel1.id = tabel2.id_name
WHERE tabel1.id = tabel2.id_name ORDER BY SUM(money)

我只收到第二个表的第一行。

我哪里做错了?

最佳答案

您需要使用GROUP BY

SELECT tabel1.name ,SUM(tabel2.money) 
 FROM tabel2 JOIN tabel2 ON tabel1.id = tabel2.id_name
 WHERE tabel1.id = tabel2.id_name 
GROUP BY tabel1.name
ORDER BY SUM(money)

如果您使用没有GROUP BY的聚合函数,MySQL会将所有内容分组到单行中。

关于Mysql 结果按 sum() 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127833/

相关文章:

python - Django 1.5 DatabaseError at/(1146, "Table ' x.y'不存在”)

sql - 按共同好友数排序

MySQL 查询数据库中特定用户的连接+计数

mysql - 对返回多行的 SELECT 结果求和

opencv - Opencv矩阵元素的列总和

mysql - 检索其总和小于连接表中的列的行

php - 如何将mysql列信息存储在数组中?

mysql - 将 3589 格式化为 00 :35:89 using SQL SELECT Sum

mysql - mysql 出现超出范围错误

php - WooCommerce SQL 查询查找具有特定元键和元值的产品