sql语句 怎么分组统计

table1 :

id datetimeCol content
1 2018-01-01 02:02:00 abc
2 2018-03-04 04:02:00 zxc
3 2018-01-01 02:18:00 abc12
4 2018-04-04 23:01:40 mb

需要实现不管日期部分,只管时间部分,分成24组,每组是1小时,比如第23组就是23:00:00-23:59:59这个时间段有几个值

需要的结果:

groupCol countCol
0 0
1 0
2 2
3 0
4 1
5 0
6 0
7 0
8 0
...
23 1

不知道各位能不能看懂 呵呵 试了半天都不行 受累了 各位 谢谢 Sql Server 2000

第1个回答  2019-01-06
USE test;
CREATE TABLE IF NOT EXISTS table1 (
 id INT PRIMARY KEY,
 datetimeCol DATETIME NOT NULL,
 content VARCHAR(256)
);
INSERT INTO table1(id, datetimeCol, content)  VALUES(1, "2018-01-01 02:02:00",  "abc");
INSERT INTO table1(id, datetimeCol, content)  VALUES(2, "2018-03-04 04:02:00",  "zxc");
INSERT INTO table1(id, datetimeCol, content)  VALUES(3, "2018-01-01 02:18:00",  "abc12");
INSERT INTO table1(id, datetimeCol, content)  VALUES(4, "2018-04-04 23:01:40", "mb");
SELECT groupCol, COUNT(id)  AS countCol FROM (SELECT EXTRACT(HOUR FROM datetimeCol) AS groupCol, id FROM table1) AS T1 GROUP BY groupCol ORDER BY groupCol;

结果为:

groupCol, countCol

2, 2

4, 1

23, 1

本回答被网友采纳
相似回答