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] |
结果:
参考: