sql - SQLite:从两个相关的列中获取模态/模式

标签 sql sqlite

这是表GAMES的摘录:

ID  WUSER       BUSER
1   ddyer       bdot
2   ddyer       ronaldinho
3   bluedog     ronaldinho
4   ronaldinho  bluedog
5   bluedog     ronaldinho
6   ddyer       bobc
7   bobc        ddyer


该表是来自boardspace.net网站的数据库,人们在其中进行棋盘游戏。在数据库中,wuser和buser是针对白人和黑人玩家的,id是所玩的游戏。现在,我想知道发挥最多的球员。所以我为白人球员做这件事:

 SELECT wuser, count(wuser) 
 FROM game 
 GROUP BY wuser 
 ORDER BY count(wuser) DESC;


结果是:

wuser    count(wuser)
Dumbot   75926
guest    22541
image13  1594
DrRaven  1460
Eucalyx  1147
Loizz    963


然后我必须对黑人球员做同样的事情:

 SELECT buser, count(buser) 
 FROM game 
 GROUP BY buser 
 ORDER BY count(buser) DESC;

buser    count(buser)
Dumbot   59489
guest    29324
Eucalyx  1007
image13  756
DrRaven  746
Loizz    715
alexis   660


我可以像下面一样手动对其进行汇总,但是如何从单个SQL语句中获取结果:

user     count(as both buser and wuser)
Dumbot   135412
guest    51865
image13  2350
DrRaven  2206


我只想知道每个玩家玩的游戏总数,所以我不关心他们玩白色还是黑色。

最佳答案

由于每个用户有大量行,因此最好在UNION之前增加COUNT并添加另一个聚合步骤:

SELECT usr, sum(cnt)
FROM
 (
   SELECT wuser as usr, count(*) as cnt
   FROM game 
   GROUP BY wuser

   UNION ALL

   SELECT buser, count(*) 
   FROM game 
   GROUP BY buser
 ) AS dt
 GROUP BY usr
 ORDER BY sum(cnt) DESC;

关于sql - SQLite:从两个相关的列中获取模态/模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30252628/

相关文章:

mysql - 错误 1215 (HY000) : Cannot add foreign key constraint. 已尝试多次

php从一张或多张表中获取数据

sql - 如果更新....Where 不影响任何行,是否创建了任何锁?

php - 在 SQL 语句中,如果没有找到特定查询的任何内容,则返回一个条目

c++ - 你如何存储一个空整数与存储零

Django 对我的 DATABASES 设置做了一些奇怪的事情

mysql 将选择结果与一组值进行比较

sqlite查询未排序的结果

python - 将今天的日期与sqlite数据库表中的日期字段进行比较

python - 从 python 中的 sqlite 表中读取原始数据