我在表中有如下记录;
no. name amount
1. joh 100
2. cathy 100
3. phyo 300
4. phyo 100
5. joh 100
6. cathy 50
我想把每个名字的金额相加,并用金额查询最高的用户。如何在mysql中进行这些查询。
此查询应该有效:
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name ORDER BY total DESC LIMIT 1
说明:
我将解释您应该如何编写查询,或者至少下次如何解决。
首先从简单的名称和金额选择开始:
SELECT name, amount FROM user_amounts
然后我们想知道每个名字的数量,所以我们有这个查询:
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name
正如你所看到的,我使用了SUM
函数和GROUP BY
,因为如果你不使用GROUP BY name
,那么你的结果将只有一行。
在那之后,我们有了类似于的东西
joh 200cathy 150phyo 400
但我们想要第一个更高的弹药,所以需要订购,我们只想要更高的,所以限制1只恢复名字
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name ORDER BY total DESC LIMIT 1
希望一切都清楚。
试试这个。但这会有问题,你有领带。
SELECT name, SUM(amount) as total
FROM user_amounts
GROUP BY name ORDER BY 2 desc LIMIT 1
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name ORDER BY total SUM(Marks) DESC LIMIT 1
您有两个部分-1)首先需要对单个用户数据求和2)找出最高数据。用answer SQL查询来检查这个问题,以对数据进行求和,你会有这样做的想法。使用select name, sum(amount) as total from table group by name order by total DESC