加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

发布时间:2020-12-12 16:36:23 所属栏目:百科 来源:网络整理
导读:ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 收藏 mrliuze 发表于 2年前 阅读 11460 收藏 3 点赞 1 评论 0 聚焦虚拟化和OpenStack、容器、大数据等开源技术的年度大趴! ? 摘要: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ORACLE 中的 ROW_NUMBE
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 收藏 mrliuze
  • 发表于2年前
  • 阅读11460
  • 收藏3
  • 点赞1
  • 评论0

聚焦虚拟化和OpenStack、容器、大数据等开源技术的年度大趴!>>> ?

摘要: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的)。

举例:

SQL> DESC T1;

Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(10)
DATE1 DATE

SQL> SELECT * FROM T1;
ID NAME DATE1
---------- ------------------------------ ------------------
101 aaa 09-SEP-13

101 bbb 10-SEP-13

101 ccc 11-SEP-13

102 ddd 08-SEP-13

102 eee 11-SEP-13


SQL> SELECT ID,NAME,DATE1,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM T1;

ID NAME DATE1 RN
---------- ------------------------------ ------------------ ----------
101 ccc 11-SEP-13 1
101 bbb 10-SEP-13 2
101 aaa 09-SEP-13 3
102 eee 11-SEP-13 1
102 ddd 08-SEP-13 2


把上面语句作为一个子表语句,嵌入到另一条语句中:


SQL> SELECT ID,DATE1 FROM (SELECT ID,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM T1)T WHERE T.RN=1;

ID NAME DATE1
---------- ------------------------------ ------------------
101 ccc 11-SEP-13
102 eee 11-SEP-13

原文地址: http://www.52php.cn/article/p-pdzfgokp-baa.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读