Sql-Server基础之Grouping用法
Sql-Server基础之Grouping用法
GROUPING 是一个聚合函数,用在含有 CUBE 或 ROLLUP 语句的SQL语句中,当结果集中的数据行是由 CUBE 或 ROLLUP 运算产生的(添加的)则该函数返回1,否则返回0。
语法: GROUPING(column_name)
其中 column_name 是用在 CUBE 或 ROLLUP 运算的列 或 group by 后的列。
注意:
- (1)只有使用了
CUBE或ROLLUP运算符的SQL中才能使用GROUPING - (2)
GROUPING后面的列 名可以是CUBE或ROLLUP运算符中使用的列名,也可以是group by中的列名
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
** CUBE**
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
1 | SELECT CourseID,StudentID,SUM(Score) FROM [dbo].[Score] |
结果:
** ROLLUP**
1 | SELECT StudentID,CourseID,SUM(Score) FROM [dbo].[Score] |
结果:
** GROUPING**
获取每个学生成绩的总和。以下示例结果相同
1 | SELECT StudentID,CourseID,SUM(Score),grouping(CourseID) FROM [dbo].[Score] |
结果:
1 | SELECT StudentID,CourseID,SUM(Score),grouping(CourseID) FROM [dbo].[Score] |
结果:
参考: