溫馨提示×

如何利用GROUPING函數(shù)處理空值數(shù)據(jù)

小樊
84
2024-09-02 09:39:04
欄目: 編程語言

在 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 BYROLLUP 結(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)行顯示。

0