在 SQL 中,GROUPING
函數(shù)用于確定分組列中的空值是否已替換為一個匯總值
首先,我們創(chuàng)建一個包含空值的示例表:
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);
現(xiàn)在,我們將使用 GROUPING
函數(shù)處理空值數(shù)據(jù)。請注意,當(dāng)對分組列使用 GROUPING
函數(shù)時,需要與 GROUP BY
和 ROLLUP
結(jié)合使用:
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
子句來計算每個區(qū)域的銷售額以及總銷售額。HAVING
子句用于過濾結(jié)果集,只顯示區(qū)域分組(GROUPING(region) = 0
)和空值分組(region IS NULL
)。
查詢結(jié)果如下:
region | total_sales
--------+-------------
North | 100
South | 200
East | 300
West | 400
NULL | 500
在這個例子中,GROUPING
函數(shù)用于處理空值數(shù)據(jù),并將其作為單獨的分組進(jìn)行顯示。