SQL统计数据量
2016-04-07 18:24
253 查看
统计数据
很多时候遇到统计数据的问题,比如统计半年,每个月,每天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是Oracle的,所以从0截取和从1截取是一样的。
SYSDATE-220获取早于当前220天的时间。
ADD_MONTHS(SYSDATE, -5) 在当前月份上进行减5.
对CYear, CMonth进行group,同时使用count(1)对行进行统计。获取每个月的数据量。
每天
同样,统计每天数据量如下:
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, CDay ORDER BY CYear, CMonth, CDay;
每小时
统计某月每天每小时数据量
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 = '2016' and CMonth = '04' group by CYear, CMonth, CDay,CHour order by CYear, CMonth, CDay, CHour;
相关文章推荐