统计数据
很多时候遇到统计数据的问题,比如统计半年,每个月,每天24小时等等。
每月
假定数据库中为varchar2,如20160331165124.474
SELECT CYear, CMonth,
--, CDay ,CHour,CMin,
count(1) from (
SELECT * FROM(
SELECT to_date(substr(o.create_iodt,0,8),'yyyy-MM-dd') create_date, substr(create_iodt,0, 4) CYear, substr(create_iodt,5, 2) CMonth, substr(create_iodt,7, 2) CDay ,substr(create_iodt,9, 2) CHour,substr(create_iodt,11, 2) CMin, o.*
FROM SPS_ORDER o WHERE o.ORDER_TYPE_ID = 'EP' and o.IS_ROOT = 1 AND
o.create_iodt > to_char(SYSDATE-220,'yyyyMMddHH24miss') ||'.000'
) WHERE create_date > ADD_MONTHS(SYSDATE,-5)
) WHERE CYear = '2015' OR CYear = '2016'
group by CYear, CMonth order by CYear, CMonth;
通过substr()函数对日期串进行截取,获取年、月、日、小时及分钟。注意,我的DB是Or

本文介绍了如何使用SQL进行统计数据,特别是针对日期的不同维度,如月、日和小时。通过Oracle数据库中的substr()函数和日期函数,如SYSDATE、ADD_MONTHS,结合GROUP BY和COUNT(1),来统计每个月、每天甚至每小时的数据量。
最低0.47元/天 解锁文章
1074

被折叠的 条评论
为什么被折叠?



