如何将不同天的重复条目算作一个条目?

问题描述

我具有以下结构:

MemberID
Year
Month
Day

每天,当用户登录时,活动中将显示如下内容

'1337','2020','09','01' 

这种事情每天都会发生,我要做的是将一个成员计为活跃成员。如果在5天后显示他的Memberid,我要将他包括在“,active成员”类别中。我有很多条目,对于每个Memberid,我都想这样做,并将所有这些都计入一个变量中。 / p>

'1337','01' 
'1338','01' 
'1339','01' 
'1340','01' 
'1341','01' 
'1337','02' 
'1338','02' 
'1339','02' 
'1340','02' 
'1341','02' 
'1337','03' 
'1338','03' 
'1339','03' 
'1340','03' 
'1341','03' 
'1337','04' 
'1338','04' 
'1339','04' 
'1340','04' 
'1341','04' 
'1337','05' 
'1338','05' 

所以它将计数-> 2,因为只有1337和1338登录了5个dif。天。

解决方法

如果您希望对活动数字进行总体计数,则可以使用两个级别的聚合:

select count(*) cnt
from (select memberid from mytable group by memberid having count(*) > 5) t

子查询过滤表中出现5次以上的用户。然后外部查询只计算它们。

,

获取所有出现至少5次的成员:

> select MemberID from TableName group by MemberID having count(*) >= 5;

获取所有这些成员的数量:

> select count(*) c from 
> (select MemberID TableName group by MemberID having count(*) >= 5) t;

在给定的月份(示例中为7):

> select count(*) c from 
> (select MemberID TableName where month = '07' group by MemberID having count(*) >= 5) t;