我正在尝试从名为捐赠的表中获取 blog_id 列表和该博客 ID 上的捐赠总和。我想按捐款总额排序。基本上我想制作一个按捐赠排名的博客列表。博客保存在由 blog_id 引用的不同表中。
这是我一直在尝试的,但它所做的只是总结所有捐赠并产生 1 行。我不明白我在这里做错了什么!
$donations_result = mysql_query("SELECT blog_id, sum(amount) FROM donations ORDER BY sum(amount)");
捐赠表是一系列的 blog_id 和个人捐赠。所以像这样:
blog_id--捐赠
1 ----------26
1 ----------1
2 ----------24
2 ----------12
最佳答案
您没有对列进行分组。您需要按非聚合列对其进行分组,在本例中为 blog_id
SELECT blog_id, sum(amount) TotalSum
FROM donations
GROUP BY blog_id
ORDER BY TotalSum
您的查询执行良好而没有抛出异常的原因是因为 mysql 允许使用聚合函数,而无需在 GROUP BY
子句中指定非聚合列。
关于mysql - 按总和(值)sql排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865311/