假设,我有一个表:
classroom_id(int): id of the classroom
user_id (int): id of the user
login_date(date): date of login
login_attempt_id(int): unique id of login
我试图找出一周内登录的频率,所以如果一个学生一周登录3天(以任何顺序),输出将是3。
因此,频率的输出将在0-7的范围内,这意味着,该人在一周的7天中的0-7天登录。
同时,学生可以在同一天多次登录系统。我希望仅在一周内获得唯一的示例。
数据为一个月的数据,输出应包含:
user_id(int): id of the user
week: week numbers.
frequency: frequency of login in that week number
我已经编写了一个查询,但遇到了以下问题:
with cte as(
select distinct classroom_id,
user_id,
date_format(login_date,'w') as week,
login_date,
login_attempt_id
from table)
Select classroom_id,
user_id,
week,
count(login_date) as frequency from cte
group by 1,2,3
我不知道如何处理这个问题。任何帮助都将不胜感激。
1条答案
按热度按时间pxyaymoc1#
你不需要CTE
COUNT支持DISTINCT