案例描述:
现有一组生产数据如下:主键由SCREEN_SIZE、SCREEN_RESOLUTION、PLANTARE、PRUD_TYPE四个字段组成联合主键。
按如下要求统计该表:
1、SCREEN_SIZE 不做变化
2、SCREEN_RESOLUTION -- 2K与8K不变,非2K与8K的全部按照4K统计
3、PRUD_TYPE -- LCM 不变,OPEN/CELL 不变,其他类型按照SL统计
4、每种PRUD_TYPE下分两种数量统计。分别 ONWAY_QTY 、 INPLANT_QTY。
其中INPLANT_QTY = STOCK_QTY + ROUTING_QTY
SHIP_QTY暂时不做统计
模拟数据:
SQL代码如下:
SELECT T.SCREEN_SIZE,
CASE WHEN T.SCREEN_RESOLUTION NOT IN('8K','2K') THEN '4K'
WHEN T.SCREEN_RESOLUTION = '8K' THEN '8K'
WHEN T.SCREEN_RESOLUTION = '2K' THEN '2K' END AS SCREEN_TYPE,
T.PLANTAREA,
SUM(DECODE(T.PRUD_TYPE,'LCM',(T.ONWAY_QTY),0)) AS LCM_ONWAY,
SUM(DECODE(T.PRUD_TYPE,'LCM',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS LCM_INPLANT,
SUM(DECODE(T.PRUD_TYPE,'OPEN CELL',(T.ONWAY_QTY),0)) AS OC_INPLANT,
SUM(DECODE(T.PRUD_TYPE,'OPEN CELL',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS OC_INPLANT,
SUM(DECODE(T.PRUD_TYPE,'SL1',(T.ONWAY_QTY),0)) AS SL_INPLANT,
SUM(DECODE(T.PRUD_TYPE,'SL1',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS SL_INPLANT,
SUM(T.ONWAY_QTY + T.STOCK_QTY + T.ROUTING_QTY) AS TOTAL_COUNT
FROM DEMO_STOCK T
WHERE 1=1 -- 统计条件
GROUP BY T.SCREEN_SIZE,
CASE WHEN T.SCREEN_RESOLUTION NOT IN('8K','2K') THEN '4K'
WHEN T.SCREEN_RESOLUTION = '8K' THEN '8K'
WHEN T.SCREEN_RESOLUTION = '2K' THEN '2K' END,
T.PLANTAREA
ORDER BY T.SCREEN_SIZE