当前位置: 代码迷 >> Oracle管理 >> oracle 按日月分组的效率
  详细解决方案

oracle 按日月分组的效率

热度:39   发布时间:2016-04-24 04:41:20.0
oracle 按年月分组的效率
有个订单表tbl_order里面有个日期字段ordertime, 现在想按年月分组,因为这个表里没有单独记录年月的字段,需要对ordertime处理。

select to_char(ordertime,'yyyymm') monthid,sum(salemoney) from tbl_order group by  to_char(ordertime,'yyyymm');


另外还看到另外一种做法:
select monthid,sum(salemoney) from (select to_char(ordertime,'yyyymm') monthid,t.* tbl_order t) group by monthid;

请问下这两种效率哪个更好点,有没有其他更好的办法?

------解决方案--------------------
select to_char(ordertime,'yyyymm') monthid,sum(salemoney) from tbl_order group by  to_char(ordertime,'yyyymm');

--这个效率应该会高一些。。。具体需要看执行计划吧
------解决方案--------------------
第一种  或者截取


select substr(ordertime,1,6) monthid,sum(salemoney) 
from tbl_order 
group by  substr(ordertime,1,6);
  相关解决方案