|
小丁注意,你上传的图片已被替换为“穷护法神”!
关于那个二维稠化,你的三个例子都用了两次外连接,我想先把两个维笛卡儿积会不会好点,因为只有一次外连接:
WITH
v1 AS
(SELECT years,product_name,regions,SUM(sales) sum_sales
FROM t
GROUP BY years,product_name,regions),
v2 AS
(SELECT '东区' regions FROM DUAL UNION ALL
SELECT '南区' regions FROM DUAL UNION ALL
SELECT '西区' regions FROM DUAL UNION ALL
SELECT '北区' regions FROM DUAL
),
v3 AS
(SELECT 2007+LEVEL-1 years FROM DUAL
CONNECT BY LEVEL<3 )
SELECT v5.years,v1.product_name,v5.regions,v1.sum_sales
FROM v1 PARTITION BY (v1.product_name)
RIGHT JOIN (SELECT regions,years FROM v2,v3) v5
ON v1.regions = v5.regions AND v1.years = v5.years
ORDER BY 2,1,3; |
|