在 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_salesFROM sales_dataGROUP BY region WITH ROLLUPHAVING GROUPING(region) = 0 OR region IS NULL;这里,我们使用 WITH ROLLUP 子句来计算每个区域的销售额以及总销售额。HAVING 子句用于过滤结果集,只显示区域分组(GROUPING(region) = 0)和空值分组(region IS NULL)。
查询结果如下:
region | total_sales--------+-------------North | 100South | 200East | 300West | 400NULL | 500在这个例子中,GROUPING 函数用于处理空值数据,并将其作为单独的分组进行显示。


