我的表格记录如下;
no. name amount
1. joh 100
2. cathy 100
3. phyo 300
4. phyo 100
5. joh 100
6. cathy 50
我想总结每个名称的数量,并向最高用户查询金额。 如何在mysql中进行这些查询。
答案 0 :(得分:1)
此查询应该有效:
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 200 cathy 150 phyo 400
但是我们想要第一个更高的ammouunt,所以需要订购它,我们只想要更高,所以限制1只能恢复名字
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name ORDER BY total DESC LIMIT 1
希望它会很清楚。
答案 1 :(得分:0)
试试这个。 但是这会有问题,你有一个平局。
SELECT name, SUM(amount) as total
FROM user_amounts
GROUP BY name ORDER BY 2 desc LIMIT 1
答案 2 :(得分:0)
您有两个部分 - 1)首先需要汇总个人用户数据2)找出最高数据。通过回答SQL query to sum the data来检查这个问题,你会明白这样做。使用select name, sum(amount) as total from table group by name order by total DESC
答案 3 :(得分:0)
SELECT name, SUM(amount) as total FROM user_amounts GROUP BY name ORDER BY total SUM(Marks) DESC LIMIT 1