所以我现在有一个像这样的表格
gameID | userID | WinLose
1 | 1 | win
2 | 1 | win
3 | 1 | lose
4 | 2 | win
5 | 2 | lose
6 | 2 | win
它将userID作为来自用户表的外键,并记录每个玩过的游戏,以及用户赢或输的天气。
有谁能告诉我如何编写一个查询,将每个用户赢得一次游戏的次数加起来,然后列出10个最高值?
我试图展示获胜最多的前10名用户。
感谢您的帮助。
答案 0 :(得分:1)
您可以尝试使用count
和group 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