问题描述
我具有以下结构:
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;