Oracle实现统计

ORACLEGROUP BY 来分组日期字段 按月分组

SELECT to_char(日期字段,'yyyymm'),sum(*) 
FROM [TableName] 
group by to_char(日期字段,'yyyymm');

oracle按每天,每周,每月,每季度,每年查询统计数据

//按天统计
select count(dataid) as 每天操作数量, sum()
from tablename
group by trunc(createtime, 'DD'))
//按自然周统计 
select to_char(date,'iw'),sum() 
 from  tablename
 group by to_char(date,'iw') 
//按自然月统计 
select to_char(date,'mm'),sum() 
 from   tablename
 group by to_char(date,'mm') 
 //按季统计 
select to_char(date,'q'),sum() 
 from  tablename
 group by to_char(date,'q')
 //按年统计 
select to_char(date,'yyyy'),sum() 
 from  tablename
 group by to_char(date,'yyyy')

Oracle 分组统计,按照天、月份周和自然周、月、季度和年

做报表统计时会经常用到 周,月,季度,年进行分组统计,所以结合网络搜索推荐的sql,总结如下:

-- 按天统计  
select to_char(t.CREATED+15/24, 'YYYY-MM-DD') as 天,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
group by to_char(t.CREATED+15/24, 'YYYY-MM-DD') --trunc(t.CREATED, 'DD')  
ORDER by 天 NULLS  LAST;  

这里写图片描述

-- 按自然周的日期统计   
select to_char(next_day(t.CREATED+15/24 - 7,2),'YYYY-MM-DD') AS 周,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
group by to_char(next_day(t.CREATED+15/24 - 7,2),'YYYY-MM-DD')  
ORDER BY 周;  

这里写图片描述

-- 按自然周统计   
select to_char(t.CREATED,'iw') AS 周,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
group by to_char(t.CREATED,'iw')  
ORDER BY 周;  

这里写图片描述

-- 按自然月统计   
select to_char(t.CREATED,'YYYY-MM') as 月份,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
GROUP BY to_char(t.CREATED,'YYYY-MM') -- to_char(t.CREATED+15/24,'yyyy-mm') 不大准确  
ORDER BY 月份;  

这里写图片描述

-- 按季统计   
select to_char(t.CREATED,'q') 季度,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
group by to_char(t.CREATED,'q')  
ORDER BY 季度 NULLS  LAST;  

这里写图片描述

--按年统计   
select to_char(t.CREATED,'yyyy') AS 年度,sum(1) as 数量  
from TB_EXT_TRADE t  
WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'  
group by to_char(t.CREATED,'yyyy')  
ORDER BY 年度;  

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值