Mysql 计算多列

标签 mysql sql database

为了写这个查询,我已经用头撞墙几个小时了。我有两张 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/

相关文章:

php - 使用 mysql 和 codeigniter 检查 sum(amount) 的条件

mysql - 在 1B 记录(带索引字段)上执行 %term% 之类的 mysql

MySQL分组查询优化

mysql - 使用mysql查询基于不同组获取product_id列的不同计数

sql - 从redshift删除重复的行

SQL - 如何在where子句条件中添加计数

java - '没有合适的驱动程序'错误Android mySql

mysql - 我无法检索大于或等于 Sql 中特定日期的日期。

mysql - 内部 JOIN 返回重复行

php - Laravel 读/写连接 - 明确指定