繁体   English   中英

为每一行选择唯一的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM