排名前10的SQL查询

时间:2016-11-09 23:05:27

标签: mysql sql

所以我现在有一个像这样的表格

gameID | userID | WinLose 
1      | 1      | win
2      | 1      | win
3      | 1      | lose
4      | 2      | win
5      | 2      | lose
6      | 2      | win

它将userID作为来自用户表的外键,并记录每个玩过的游戏,以及用户赢或输的天气。

有谁能告诉我如何编写一个查询,将每个用户赢得一次游戏的次数加起来,然后列出10个最高值?

我试图展示获胜最多的前10名用户。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用countgroup by子句获取用户的总和,然后使用order by对结果进行排序,并使用limit获得前10名:

select userID
     , count(*) as total_wins 
from tbl 
where WinLose='win'
group by userID
order by total_wins desc
limit 10

或条件sum

select userID
     , sum(WinLose='win') as total_wins 
from tbl 
group by userID
order by total_wins desc
limit 10