如何理解keep 函数

网友投稿 336 2023-12-29

如何理解keep 函数

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

如何理解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 函数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何理解Redis主从复制的全量和增量同步
下一篇:oracle12c下rac如何扩容asm存储
相关文章

 发表评论

暂时没有评论,来抢沙发吧~