SQL GROUPING()函数
聚合是将对象集合绑定在一起作为单个实体。 SQL的 GROUPING() 函数用于验证group by子句中的列表达式是否聚合。如果给定的列表达式聚合,则此函数返回1,否则返回0。
此函数用于区分常规行中的NULL和表示超级聚合行中的所有值集的NULL(由ROLLUP操作生成)。
< p> 只有在指定GROUP BY时,才可以在SELECT,LIST,HAVING,ORDER BY子句中使用分组。
语法
以下是SQL的语法 GROUPING() 函数的语法 –
参数
- column_expression - 它是一个包含在GROUP BY子句中的列或表达式。
示例
假设我们使用以下查询创建了一个名为customer的表 –
表存储了ID、名称、年龄、地址和薪水。现在我们正在使用INSERT语句向客户表中插入7条记录。
客户表格将如下所示−
下面是使用分组函数按年龄分组并对薪水总额进行聚合的查询:
输出
以下是上述SQL查询的输出结果,其中在AGE字段下显示着一个空值。这个空值是由ROLLUP操作添加的汇总行。汇总行显示了所有年龄组的薪水总和,这在GROUPING列中用1表示。
示例
我们可以在select语句或having子句中使用分组函数。当指定having子句时,我们可以使用分组函数仅检索超累加行或仅检索累加行,下面是一个示例:
输出
以下是上述 SQL 查询的输出结果 –
示例
在以下示例中,我们正在使用grouping()函数来对两列进行分组。对于每一列,grouping函数在该列生成的空值是通过rollup操作产生的时返回1,否则返回0。
输出
以下是上述SQL查询的输出: