[英]Selecting unique column for each row
我有下表:
'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。
如果我通过user_id选择DISTINCT,则不会计算不同日期的同一用户。 如果我按日期选择DISTINCT,则不会计算与不同用户的同一天。
我希望报告统计每个日期的唯一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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.