oracle分组

Group by 函数往往不能把多个不同分组分为一个组,这是我们可以用一种折中的办法,
SELECT
(CASE
		WHEN VI.BLEVEL > '3' THEN
		  '3'
		ELSE
		  VI.BLEVEL
		END) AS BLEVEL

第一次group时,对分组字段进行,重新赋值;根据第一次的group结果,重新分组即可
SELECT "SUM"(vx.Amount) AS AMOUNT,VX.T_ITEM, vx.BLEVEL FROM
(
SELECT
(CASE
		WHEN VI.BLEVEL > '3' THEN
		  '3'
		ELSE
		  VI.BLEVEL
		END) AS BLEVEL[/color], "SUM"(VI.AMOUNT) AS AMOUNT,VI.T_ITEM FROM VI_INCOME_ITEM_MAPPING vi WHERE 
"SUBSTR"(VI.TXN_DATE,1,6)  >='201601' AND "SUBSTR"(VI.TXN_DATE,1,6)  <='201608' 
AND VI.T_ITEM IN ('T010101','T010201','T0103','T010401','T0105','T010601') 
[color=blue]GROUP BY VI.T_ITEM,VI.BLEVEL[/color]) vx [color=blue]GROUP BY VX.T_ITEM,VX.BLEVEL

猜你喜欢

转载自donald-draper.iteye.com/blog/2319679