温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解keep 函数

发布时间:2021-11-12 15:05:18 来源:亿速云 阅读:226 作者:柒染 栏目:关系型数据库

今天就跟大家聊聊有关如何理解keep 函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

keep 函数

例子:

SELECT TO_CHAR (log_date, 'YYYY') year,
         TO_CHAR (log_date, 'Q') quarter,
         TO_CHAR (log_date, 'MM') month,
         employee_id,
         MIN (old_salary) keep(dense_rank first order by log_date),
         MIN (new_salary) keep(dense_rank last order by log_date),
         GROUPING_ID (TO_CHAR (log_date, 'YYYY'),
                      TO_CHAR (log_date, 'Q'),
                      TO_CHAR (log_date, 'MM'))
            gid
    FROM plch_emp_log
GROUP BY ROLLUP (TO_CHAR (log_date, 'YYYY'),
                 TO_CHAR (log_date, 'Q'),
                 TO_CHAR (log_date, 'MM')),
         employee_id

- group by 分组

- 对每一个分组内部按照log_date进行dense(稠密)排序,排序后的结果first取第一行,last取最后一行。

- 然后对取出的结果再进行min聚合函数

* 几种排序

ROW_NUMBER() 是没有重复值的排序(即使两条记录相同,序号也不重复的),不会有同名次。

DENSE_RANK() 是连续的排序,两个第二名仍然跟着第三名。

RANK() 是跳跃排序,两个第二名下来就是第四名。

看完上述内容,你们对如何理解keep 函数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI