在 SQL 中,GROUPING
函數用于確定分組列中的空值是否已替換為一個匯總值
首先,我們創建一個包含空值的示例表:
CREATE TABLE sales_data (
region VARCHAR(255),
sales INT
);
INSERT INTO sales_data (region, sales)
VALUES ('North', 100),
('South', 200),
('East', 300),
('West', 400),
(NULL, 500);
現在,我們將使用 GROUPING
函數處理空值數據。請注意,當對分組列使用 GROUPING
函數時,需要與 GROUP BY
和 ROLLUP
結合使用:
SELECT region, SUM(sales) AS total_sales
FROM sales_data
GROUP BY region WITH ROLLUP
HAVING GROUPING(region) = 0 OR region IS NULL;
這里,我們使用 WITH ROLLUP
子句來計算每個區域的銷售額以及總銷售額。HAVING
子句用于過濾結果集,只顯示區域分組(GROUPING(region) = 0
)和空值分組(region IS NULL
)。
查詢結果如下:
region | total_sales
--------+-------------
North | 100
South | 200
East | 300
West | 400
NULL | 500
在這個例子中,GROUPING
函數用于處理空值數據,并將其作為單獨的分組進行顯示。