SQL按小时选择查询
帮助我编写一个select查询,以按小时获取记录计数。我希望在输出中显示所有24小时,即使表中没有特定小时的可用记录 比如说SQL按小时选择查询,sql,ibm-midrange,Sql,Ibm Midrange,帮助我编写一个select查询,以按小时获取记录计数。我希望在输出中显示所有24小时,即使表中没有特定小时的可用记录 比如说 Date Hour Record count ---------------------------- 2013/03/01 00 - 100 2013/03/01 01 - 0 (No records available in the table) 2013/03/01 02 - 200 2013/03/01 03 - 300 2013/03/01 04 -
Date Hour Record count
----------------------------
2013/03/01 00 - 100
2013/03/01 01 - 0 (No records available in the table)
2013/03/01 02 - 200
2013/03/01 03 - 300
2013/03/01 04 - 0 (No records available in the table)
……继续。。。直到23小时
这是我当前使用的查询
SELECT VALUE.DATETIME, COUNT(*) as TOTALPOBYCREATEDTIMEANDDATE
FROM (SELECT CASE WHEN LENGTH(TRIM(TIMECOL)) <= 4
THEN DATECOL CONCAT '00'
WHEN LENGTH(TRIM(TIMECOL)) = 5
THEN DATECOL CONCAT '0' CONCAT SUBSTR(TRIM(TIMECOL),1,1)
ELSE DATECOL CONCAT SUBSTR(TRIM(TIMECOL),1,2) END as DATETIME
FROM ORDLIB/ORDERTABLE
WHERE DATECOL LIKE '201303%') VALUE
GROUP BY VALUE.DATETIME
ORDER BY VALUE.DATETIME
选择VALUE.DATETIME,将(*)计数为TOTALPOBYCREATEDTIMEANDDATE
从(选择长度时的大小写(修剪(TIMECOL))考虑创建一个“小时”表,每个小时有一行。然后进行左连接以表示所有的小时数。没有记录的小时数行将返回为NULL,但如果您喜欢零而不是NULL,则可以合并这些行。请提供您目前为止在这方面的尝试。这不是让人们只为您编写代码的地方。……是您的吗日期/时间列实际上是字符类型?最好能将它们转换为实际的日期/时间/时间戳类型。不管怎样,我们能得到示例起始数据吗?