我有一个来自此数据的数据上下文列表(yyyy-mm-dd,hh:min:ss),我需要整理一天中任何给定时间对“登录”进行打孔的次数。以及一周中每天的登录次数。
我尝试了一些代码,但不确定我是否正确。我还应该在声明中加入COUNT(*)
此代码用于每小时登录:
SELECT date_time, HOUR(date_time) FROM time_logs ORDER BY DAY(date_time);
一周中一天的代码:
SELECT date_time, DAY(date_time) FROM time_logs ORDER BY DAY(date_time);
这是对的吗?如果不能,你可以给我提示
答案 0 :(得分:0)
要计算每小时登录次数,您只需在COUNT(*)
和SELECT
中添加GROUP BY HOUR(date_time)
。
SELECT date_time, HOUR(date_time),COUNT(*) 'Total Logins'
FROM time_logs GROUP BY HOUR(date_time) ORDER BY DAY(date_time);
类似地,您需要添加相同的内容。唯一的区别是您的分组现在是按天进行的。
SELECT date_time, DAY(date_time), COUNT(*) 'Total Logins'
FROM time_logs GROUP BY DAY(date_time) ORDER BY DAY(date_time);
答案 1 :(得分:0)
您可以将日期时间同时转换为小时和日期,然后按分组进行汇总。
答案 2 :(得分:0)
一天中的某个小时:
SELECT HOUR(date_time), COUNT(*)
FROM time_logs
GROUP BY HOUR(date_time);
一周中的某天:
SELECT WEEKDAY(date_time), COUNT(*)
FROM time_logs
GROUP BY WEEKDAY(date_time)
ORDER BY MIN(date_time)