我有下表:
'A', '2014-07-28'
'A', '2014-07-27'
'A', '2014-07-20'
'B', '2014-07-21'
'B', '2014-07-20'
'A', '2014-07-22'
'A', '2014-07-22'
'B', '2014-07-22'
'B', '2014-07-24'
'B', '2014-07-27'
我需要获取用户登录历史记录的报告。该报告应显示在特定天数内登录的用户数量。
例如,27 日,A 和 B 都登录了。因此报告应显示 2。 22 日,A 登录了两次,B 登录了一次,因此报告应显示 2。
如果我选择 DISTINCT by user_id,则不同日期的同一用户将不会被计算在内。 如果我选择“按日期区分”,则不同用户的同一天将不会被计算在内。
我希望报告能够计算每个日期的唯一 ID 的数量。然后总结一下这几天的情况。
最好的方法是什么?
最佳答案
您将必须使用Group By
子句来获取每天的计数
Select user_id, `date`, count(*) As count
From loginTable
Group By user_id, `date`
然后在派生表中使用另一个分组依据来对每个用户进行求和。
Select d.user_id, Sum(*) As TotalCount
From (
Select user_id, `date`, count(*) As count
From loginTable
Group By user_id, `date`) d
Group By d.user_id
关于mysql - 为每行选择唯一的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003884/