为了写这个查询,我已经用头撞墙几个小时了。我有两张 table 。我想选择某个日期玩游戏的次数,但只计算每个用户玩一场游戏的次数。例如,Ping Ping 在 2011 年玩了 3 次,但只有 2 个用户,所以我想要返回的总数是 2。
session 表
DATE GAME_ID USER_ID
2011 1 1
2011 2 1
2011 1 1
2011 1 2
2011 2 2
2012 1 1
2012 1 1
游戏 table
ID NAME
1 PING PONG
2 TENNIS
到目前为止我真的很挣扎。此代码段返回唯一时间,但不限于日期。
SELECT DISTINCT GAME_ID,USER_ID FROM SESSIONS
我知道如何将查询限制为日期等,但在两列之间进行计数时遇到困难,我是否必须将上面的查询传递到计数函数中?
任何帮助将不胜感激!
谢谢
最佳答案
您想要做的是计算给定日期的不同用户:
select g.name, count(distinct s.user_id) as NumUsers
from sessions s join
games g
on s.game_id = g.id
where date = <whatever your date>
group by g.name
关于Mysql 计算多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288004/