我有一個存儲一些數據和日期(例如yyyymmdd)和時間(例如hhmmss)的SQL表。 現在我需要選擇一天中每個小時的入場次數。可能使SQL查詢計算一天中的每個小時?
- 條目的第一次計數將是:000000直到005959
- 二將:010000直到015959
是否有可能有一個選擇使這個,然後有24個計數的數組結果如何?否則,我將需要創建24個選擇來獲取我想要的所有數據。
我有一個存儲一些數據和日期(例如yyyymmdd)和時間(例如hhmmss)的SQL表。 現在我需要選擇一天中每個小時的入場次數。可能使SQL查詢計算一天中的每個小時?
是否有可能有一個選擇使這個,然後有24個計數的數組結果如何?否則,我將需要創建24個選擇來獲取我想要的所有數據。
按功能分組使用。另一種選擇是創建小時,分鐘和秒的字段。它會複製數據,但沒有問題。
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
條款。
我想你可以使用HOUR函數。我不使用MYSQL,但看起來它具有此功能。可能檢查它的語法。
SELECT HOUR(TheTimeField), COUNT(*)
FROM TheTable
GROUP BY HOUR(TheTimeField)
ORDER BY HOUR(TheTimeField)
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
MySQL或SQL服務器? – scaisEdge
你到目前爲止做了什麼? – Alex
這是您應該在查詢中使用計數表或數字表作爲主表的位置。 –