有的時候我們要從資料庫裡把資料組織成樹結構再展現到頁面上
像下面這樣
今天我們用Group 和Grouping實作它,并總結一下它倆。
先看一下概念,再用代碼一點一點去了解它們,最後我會給出完整的代碼
Group By : 語句用于結合合計函數,根據一個或多個列對結果集進行分組。
Grouping :訓示是否聚合 GROUP BY 清單中的指定清單達式。 在結果集中,如果 GROUPING 傳回 1 則訓示聚合;
傳回 0 則訓示不聚合。 如果指定了 GROUP BY,則 GROUPING 隻能用在 SELECT <select> 清單、HAVING 和 ORDER BY 子句中。
ROLLUP :生成簡單的 GROUP BY 聚合行以及小計行或超聚合行,還生成一個總計行。
讓我們先建一個資料庫,并添加一些資料
看一下它們的資料
我們把它們用Group By分一下組
我們看到這樣和沒有分組時展現的資料是一樣的,讓我們加上 ROLLUP 加上合計行
我們看到了好多NULL資料,而且很有規律
這些規律我們可以用Grouping 看到
你會發現那些Null值就是Grouping 為1的時候
最後一行的合計是Categrory_ID的,我們不需要,CategoryID的合計我們也不需要我們要怎麼去掉它們呢,在having 裡
這樣的結果 我們看到隻有Product_Name的Grouping有為1 了
我們就是用它去實作這棵樹
下面是完整的代碼