grouping 函数确定分组级别的嵌套,返回 0 表示最外层分组,返回 1 表示内部分组。可用于识别最外层分组、计算聚合函数结果和基于分组创建条件。
Oracle 中的 GROUPING 函数
GROUPING 函数用于标记聚合函数计算中的分组级别。它返回一个值,表示该行是否属于嵌套最深的分组。
语法
<code>GROUPING(expr)</code>
登录后复制
其中:
- expr 是指定分组范围的列或表达式。
用法
GROUPING 函数可用于:
- 识别最外层分组中的行。
- 仅在最外层分组中计算聚合函数的结果。
- 创建基于分组层次结构的条件。
返回值
GROUPING 函数返回以下值:
- 0:如果行属于嵌套最深的分组。
- 1:如果行属于内部分组。
示例
<code>SELECT department_id, job_id, SUM(salary) AS total_salary, GROUPING(job_id) AS group_level FROM employee GROUP BY department_id, job_id;</code>
登录后复制
结果:
department_id | job_id | total_salary | group_level |
---|---|---|---|
10 | 20 | 60000 | 0 |
10 | 30 | 40000 | 0 |
10 | 40 | 20000 | 1 |
20 | 50 | 50000 | 0 |
20 | 60 | 30000 | 1 |
在该示例中,group_level 列指示:
- department_id 和 job_id 都属于最外层分组(group_level 为 0)。
- department_id 为外层分组,而 job_id 为内层分组(group_level 为 1)。
以上就是oracle中grouping用法的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:weapp,转转请注明出处:https://www.dingdanghao.com/article/424909.html