MySQL交叉表實現分享

在某些數據庫中有交叉表,但在MySQL中卻沒有這個功能,但網上看到有不少朋友想找出一個解決方法,特發貼集思廣義

現整理解法如下:

數據樣本:

期望結果

1. 利用SUM(IF()) 生成列 + WITH ROLLUP 生成匯總行,并利用 IFNULL將匯總行標題顯示為 Total

2. 利用SUM(IF()) 生成列 + UNION 生成匯總行,并利用 IFNULL將匯總行標題顯示為 Total

3. 利用SUM(IF()) 生成列,直接生成結果不再利用子查詢

4. 動態,適用于列不確定情況,

以上均由網友 liangCK , wwwwb , WWWWA , dap570 提供, 再次感謝他們的支持。
其實數據庫中也可以用 CASE WHEN / DECODE 代替 IF

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享