有一批数据需要完成数据匹配,匹配完成后会在结果表的 MatchDate 字段存储匹配时间。匹配的数据无法在1天内完成,现在需要统计每小时匹配数据量。
SELECT TO_CHAR(TR.MatchDate, 'mm-dd hh24') AS MD, COUNT(*) AS HOUR_TOTAL
FROM result_table_name TR -- result_table_name 所需查询数据的表名
WHERE TO_CHAR(TRUNC(TR.MatchDate), 'yyyy-mm') -- TR.MatchDate 是匹配数据完成时间列,解决时间类型不统一,统一使用 TO_CHAR 来进行类型转换
= (SELECT TO_CHAR(SYSDATE, 'yyyy-mm') FROM DUAL) -- 获取系统时间
GROUP BY TO_CHAR(TR.MatchDate, 'mm-dd hh24') -- 通过日期中的“月-日 小时”来进行分组操作
order by MD;
-- 或
SELECT TO_CHAR(TR.MatchDate, 'mm-dd hh24') AS MD, COUNT(*) AS HOUR_TOTAL
FROM result_table_name TR -- result_table_name 所需查询数据的表名
GROUP BY TO_CHAR(TR.MatchDate, 'mm-dd hh24') -- 通过日期中的“月-日 小时”来进行分组操作
order by MD;
SELECT TO_CHAR(TR.MATCHDATE, 'mm-dd hh24:mi') AS MD, COUNT(*) AS MINUTE_TOTAL
FROM result_table_name TR -- result_table_name 所需查询数据的表名
GROUP BY TO_CHAR(TR.MATCHDATE, 'mm-dd hh24:mi') -- 通过日期中的“月-日 小时:分钟”来进行分组操作
order by MD;