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