路过的大佬帮忙看下关于 多个 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)) 个数多和数据库数据量特别大的情况下会不会有特别明显的降低效率