如何实现 MySQL 查询结合多个的 count () 和 GROUP BY

来源:互联网 发布:挠脚心知不及格代价上 编辑:程序博客网 时间:2024/05/16 19:22

有这种类型的数据:

id      date            user_id    result1       2015-05-04      1          win2       2015-05-06      1          loss3       2015-05-09      2          loss4       2015-05-10      2          win5       2015-05-16      1          win

我需要得到大多数 wins 按排序 4 用户排名。但我还需要对这些 4 的顶尖成功者获得损失的数量。所以当我查询此特定的组会和这:

user    wins    losses1       2       12       1       1

我知道怎么去只是一起 user_id,wins 使用:

SELECT user_id, COUNT(id) AS wins FROM table WHERE result = 'win' GROUP BY user_id ORDER BY COUNT(id) DESC LIMIT 4

但我怎也会损失对使用相同的查询这些顶尖 4 球员吗?我知道它的可能,但只是一点线索也没有如何执行它!有什么想法?

解决方法 1:

你想要条件聚合:

SELECT user_id, sum(result = 'win') AS wins, sum(result = 'loss') as lossesFROM tableGROUP BY user_idORDER BY wins DESCLIMIT 4;
0 0
原创粉丝点击