我有一个SQL表,它存储一些数据和日期(例如yyyymmdd)和时间(例如hhmmss)。 现在我需要选择每天每小时的条目数。
是否可以使用单个选择进行此操作,然后拥有24个计数结果的数组?否则,我需要创建24个选项以获取我想要的所有数据。
答案 0 :(得分:1)
按功能分组使用。另一种选择是创建小时,分钟和秒的字段。它会复制数据,但没有问题。
CREATE TABLE test(id int, date varchar(8), time varchar(6));
INSERT INTO test VALUES(1,'20160616','015959');
INSERT INTO test VALUES(2,'20160616','015959');
INSERT INTO test VALUES(3,'20160616','025959');
SELECT count(substr(time,1,2)), test.date
FROM test
GROUP BY date, substr(time,1,2);
输出:
count(substr(time,1,2)), date
'2', '20160616'
'1', '20160616'
如果您有TIME
列,请使用:
SELECT count(hour(time)), test.date
FROM test
GROUP BY date, hour(time);
如果您不需要按date
计算此数,请从select
和group by
条款中删除。
答案 1 :(得分:0)
我认为您可以使用HOUR功能。我不使用MYSQL,但看起来它有这个功能。可以检查它上面的语法。
SELECT HOUR(TheTimeField), COUNT(*)
FROM TheTable
GROUP BY HOUR(TheTimeField)
ORDER BY HOUR(TheTimeField)
答案 2 :(得分:0)
select hour (time_column), count (*)
from table
group by hour(time_column)
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_hour