显示mysql结果总共不同的输入

时间:2013-06-17 21:02:01

标签: php mysql

如果我有一个MYSQL表来排序名称和一个对值进行排序的表。

示例如下表格如下:

ID name   value
-- ------ -----
1  John     500
2  Rock     350
3  Wayne    700
4  John     350
5  Rock     250
6  Nick     100
7  Sweety    75
8  Lex      350

如何显示eache用户的总价值?如果我想过滤它只显示前3,那么有一个简单的命令吗?或者我需要做一些功能。

在PHP中

John 850
Wayne 700
Rock 600
Lex 350
Nick 100
Sweety 75

2 个答案:

答案 0 :(得分:2)

可以通过aggregates来实现,

SELECT ID, name, SUM(value) as total_score 
FROM user_scores 
GROUP BY name
ORDER BY total_score

答案 1 :(得分:2)

您需要一个聚合函数,特别是SUM。您可以按选择列表中的任意值订购查询,并从高到低依次使用DESC关键字:

SELECT Name, SUM(value) AS TotalValue
FROM myTable
GROUP BY Name
ORDER BY TotalValue DESC

当您在PHP中引用列名时,AS TotalValue将确保列名为TotalValue