上次你教我使用SELECT CASE的pivoting,它非常有幫助。 這次我需要更高級的幫助。嵌套pivoting
情況如下:
我有同樣的老死亡記錄數據庫;列存儲的原因包含的值全部原因,我提出把它變成了N將導致n列使用選擇的情況下,像這樣
SELECT anno, cod_comune,
SUM(CASE sex WHEN 'M' THEN 1 ELSE 0 END) AS M,
SUM(CASE sex WHEN 'F' THEN 1 ELSE 0 END) AS F,
SUM(CASE cod_tit WHEN 'I' THEN 1 ELSE 0 END) AS dis_I,
SUM(CASE cod_tit WHEN 'II' THEN 1 ELSE 0 END) AS dis_II ,
SUM(CASE cod_tit WHEN 'III' THEN 1 ELSE 0 END) AS dis_III,
...
FROM casi
WHERE cod_comune>40000 AND cod_comune<200000 AND cod_comune NOT LIKE '%00'
GROUP BY anno, cod_comune, sex
ORDER BY anno, cod_comune, age;
通過這樣做我獲得2行的每一個城市,一個爲男性和一個是女性和每個原因死亡的人數。
也就是說,我得到這樣的事情
+------+------------+------+------+-------+--------+---------+
| anno | cod_comune | M | F | dis_I | dis_II | dis_III |
+------+------------+------+------+-------+--------+---------+
| 2003 | 41001 | 0 | 19 | 0 | 5 | 0 |
| 2003 | 41001 | 20 | 0 | 0 | 7 | 0 |
| 2003 | 41002 | 12 | 0 | 0 | 3 | 0 |
| 2003 | 41002 | 0 | 16 | 0 | 6 | 0 |
| 2003 | 41003 | 8 | 0 | 0 | 1 | 0 |
| 2003 | 41003 | 0 | 6 | 0 | 2 | 0 |
| ... | ... | ... | ... | ... | ... | ... |
相反,我的教授說,這將是可取的,如果我只有1行每個鎮,反正保持性別的區分。
所以,我打算加倍有關原因的列,例如causeI_m和causeI_f。我已經給出了兩個條件來選擇案例,但它不起作用,其中我全部爲零的原因之一。
SELECT anno, cod_comune,
SUM(CASE sex WHEN 'M' THEN 1 ELSE 0 END) AS M,
SUM(CASE sex WHEN 'F' THEN 1 ELSE 0 END) AS F,
SUM(CASE sex WHEN 'M' AND cod_tit='I' THEN 1 ELSE 0 END) AS dis_Im,
SUM(CASE sex WHEN 'M' AND cod_tit='II' THEN 1 ELSE 0 END) AS dis_IIm ,
SUM(CASE sex WHEN 'M' AND cod_tit='III' THEN 1 ELSE 0 END) AS dis_IIIm,
...
SUM(CASE sex WHEN 'F' AND cod_tit='I' THEN 1 ELSE 0 END) AS dis_If,
SUM(CASE sex WHEN 'F' AND cod_tit='II' THEN 1 ELSE 0 END) AS dis_IIf ,
SUM(CASE sex WHEN 'F' AND cod_tit='III' THEN 1 ELSE 0 END) AS dis_IIIf,
...
FROM casi
WHERE cod_comune>40000 AND cod_comune<200000 AND cod_comune NOT LIKE '%00'
GROUP BY anno, cod_comune, sex
ORDER BY anno, cod_comune, age;
我從這個查詢
+------+------------+------+------+--------+---------+--------+---------+
| anno | cod_comune | M | F | dis_Im | dis_IIm | dis_If | dis_IIf |
+------+------------+------+------+--------+---------+--------+---------+
| 2003 | 41001 | 20 | 19 | 0 | 0 | 0 | 0 |
| 2003 | 41002 | 12 | 16 | 0 | 0 | 0 | 0 |
| 2003 | 41003 | 8 | 6 | 0 | 0 | 0 | 0 |
| 2003 | 41004 | 7 | 5 | 0 | 0 | 0 | 0 |
| 2003 | 41005 | 2 | 5 | 0 | 0 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... |
我因子評分,我已經orderd數據庫進行總結的情況下,當性愛等於形態和事業是一個我已經得到指定。但有些事情是錯誤的,我無法弄清楚什麼。 我會很高興,如果你給我一點幫助:) (我希望能有很好的解釋這個問題,英語仍然是我的第二語言)
準備帶示例數據的http://sqlfiddle.com以重新創建您的案例 – lad2025