是一個(gè)聚合函數(shù),它產(chǎn)生一個(gè)附加的列,當(dāng)用 CUBE 或 ROLLUP 運(yùn)算符添加行時(shí),附加的列輸出值為1,當(dāng)所添加的行不是由 CUBE 或 ROLLUP 產(chǎn)生時(shí),附加列值為0。
僅在與包含 CUBE 或 ROLLUP 運(yùn)算符的 GROUP BY 子句相聯(lián)系的選擇列表中才允許分組。
GROUPING ( column_name )
column_name
是 GROUP BY 子句中用于檢查 CUBE 或 ROLLUP 空值的列。
int
分組用于區(qū)分由 CUBE 和 ROLLUP 返回的空值和標(biāo)準(zhǔn)的空值。作為CUBE 或 ROLLUP 操作結(jié)果返回的 NULL 是 NULL 的特殊應(yīng)用。它在結(jié)果集內(nèi)作為列的占位符,意思是"全體"。
下面的示例將 royalty 的數(shù)值分組,并聚合 advance 的數(shù)值。GROUPING 函數(shù)應(yīng)用于 royalty 列。
USE pubs
SELECT royalty, SUM(advance) 'total advance',
GROUPING(royalty) 'grp'
FROM titles
GROUP BY royalty WITH ROLLUP
結(jié)果集在 royalty 下顯示兩個(gè)空值。第一個(gè) NULL 代表從表中這一列得到的空值組。第二個(gè) NULL 在 ROLLUP 操作所添加的匯總行中。匯總行顯示的是所有 royalty 組的 advance 合計(jì)數(shù)值,并且在 grp 列中用 1 標(biāo)識(shí)。
下面是結(jié)果集:
royalty total advance grp
--------- --------------------- ---
NULL NULL 0
10 57000.0000 0
12 2275.0000 0
14 4000.0000 0
16 7000.0000 0
24 25125.0000 0
NULL 95400.0000 1
相關(guān)文章