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);