Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql:如何每天和每小时分组?_Mysql_Sql_Select - Fatal编程技术网

MySql:如何每天和每小时分组?

MySql:如何每天和每小时分组?,mysql,sql,select,Mysql,Sql,Select,我试图做的是一个查询,每天每小时都会给我带来所有记录的计数。见下表中的示例: 天/小时 0 1. 2. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2015-06-02 12 22 198 234 12 22 198 234 12 22 198 234 12 22 198 234 12 22 198 234 12 22 198 2015-06-01 3. 342 1348 4. 3. 342 1348 4. 3. 342

我试图做的是一个查询,每天每小时都会给我带来所有记录的计数。见下表中的示例:


天/小时
0
1.
2.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2015-06-02
12
22
198
234
12
22
198
234
12
22
198
234
12
22
198
234
12
22
198
234
12
22
198
2015-06-01
3.
342
1348
4.
3.
342
1348
4.
3.
342
1348
4.
3.
342
1348
4.
3.
342
1348
4.
3.
342
1348

实际上,这正是我应该显示数据(表)的方式,也是我需要结果集的方式

由于一天中的小时数是一个常量集,在可预见的未来任何时候都不会改变,而且您可能也希望显示没有行的日-小时组合,因此最简单的方法可能是在查询中硬编码24列:

SELECT   DATE(date_col),
         COUNT (CASE HOUR(date_col) WHEN 0 THEN 1 ELSE NULL END) AS "0",
         COUNT (CASE HOUR(date_col) WHEN 1 THEN 1 ELSE NULL END) AS "1",
         -- 22 more of these
FROM     my_table
GROUP BY DATE(date_col)

由于一天中的小时数是一个常量集,在可预见的将来任何时候都不会改变,而且您可能也希望显示没有行的日-小时组合,因此最简单的方法可能是在查询中硬编码24列:

SELECT   DATE(date_col),
         COUNT (CASE HOUR(date_col) WHEN 0 THEN 1 ELSE NULL END) AS "0",
         COUNT (CASE HOUR(date_col) WHEN 1 THEN 1 ELSE NULL END) AS "1",
         -- 22 more of these
FROM     my_table
GROUP BY DATE(date_col)

你的MySQL代码在哪里?你的MySQL代码在哪里?你的MySQL代码在哪里?嘿@Mureinik,非常感谢你的回答。我有点认为“自然”是不可能的。我测试了你的例子,我得到了一个计数函数的错误,我必须承认我不太理解这个例子。在最初的10个小时里,我对它进行了如下测试:@mkmnstr有两件事:首先,我把
else
子句弄糟了-现在修复了。第二,你能分享这个错误吗?是的,这里有个错误:错误代码:1630。函数记录\u v3.COUNT不存在。检查参考手册Hey@Mureinik中的“函数名解析和解析”部分,已解决,只是计数和条件之间的上限和空格,非常感谢,已解决!!我不能标记为正确(嘿@Mureinik,非常感谢你的回答。我有点认为这是不可能的“自然”。我测试了你的示例,发现计数函数有一个错误,我必须承认我不太理解这个示例。我在前10个小时测试了它如下:@mkmnstr两件事:第一,我弄糟了
else
子句-现在已修复。第二-可以共享错误吗?是的,错误代码是:1630。函数记录\u v3.Ccount不存在。请查看参考手册中的“函数名解析和解析”部分Hey@Mureinik,已解决,只是计数和条件之间的大写和空格,非常感谢,已解决!!我无法标记为正确!:(Hey@Mureinik,非常感谢您的回答。我有点认为这是不可能的“自然”。我测试了你的示例,发现计数函数有一个错误,我必须承认我不太理解这个示例。我在前10个小时测试了它如下:@mkmnstr两件事:第一,我弄糟了
else
子句-现在已修复。第二-可以共享错误吗?是的,错误代码是:1630。函数记录\u v3.Ccount不存在。请检查参考手册Hey@Mureinik中的“函数名解析和解析”部分,已解决,只是计数和条件之间的大写和空格,非常感谢,已解决!!我无法标记为正确!:(