路过的大佬帮忙看下关于 多个 decode 效率问题,

迟刀 2018-03-20 03:33:16

SELECT COUNTY_ID,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201603',MONEY,0)) ,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201604',MONEY,0)) ,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201605',MONEY,0)) ,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201703',MONEY,0)) ,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201704',MONEY,0)) ,
SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201705',MONEY,0)) ,
FROM
(SELECT FE.COUNTY_ID,FE.FEE_YEAR,FE.FEE_MONTH,SUM(FE.MONTHLY_MONEY) MONEY FROM FE_MT_FEE_FILL FE GROUP BY FE.COUNTY_ID,FE.FEE_YEAR,FE.FEE_MONTH )
GROUP BY COUNTY_ID


这是我的sql, 其中 SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201705',MONEY,0)) 通过拼接sql,用于实现多行转一行, 的个数是可变的, 可能会任意多,我想问一下,在 SUM(decode(CONCAT(FEE_YEAR,LPAD(FEE_MONTH,2,'0')),'201705',MONEY,0)) 个数多和数据库数据量特别大的情况下会不会有特别明显的降低效率
...全文
712 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu志坚 2018-03-20
  • 打赏
  • 举报
回复
效率一般主要耗在IO 磁盘物理读和逻辑读上。 函数运算影响的效率占的比分很小的。
  • 打赏
  • 举报
回复
影响效率的一般不是函数的原因

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧