在 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
函数用于处理空值数据,并将其作为单独的分组进行显示。