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

甲骨文:以最大日期记录

发布时间:2020-12-12 13:47:33 所属栏目:百科 来源:网络整理
导读:我们假设我提取一些数据集. 即 SELECT A,dateFROM table 而且我只想记录最大日期(每个A值).我可以写 SELECT A,col_date FROM TABLENAME t_ext WHERE col_date = (SELECT MAX (col_date) FROM TABLENAME t_in WHERE t_in.A = t_ext.A) 但是我的查询真的很长…
我们假设我提取一些数据集.

SELECT A,date
FROM table

而且我只想记录最大日期(每个A值).我可以写

SELECT A,col_date
  FROM TABLENAME t_ext
 WHERE col_date = (SELECT MAX (col_date)
                     FROM TABLENAME t_in
                    WHERE t_in.A = t_ext.A)

但是我的查询真的很长…使用ANALYTICAL FUNCTION做一个最紧凑的方法呢?

分析函数方法看起来像
SELECT a,some_date_column
  FROM (SELECT a,some_date_column,rank() over (partition by a order by some_date_column desc) rnk
          FROM tablename)
 WHERE rnk = 1

请注意,根据您如何处理关系(或者数据模型中关系是否可能),您可能需要使用ROW_NUMBER或DENSE_RANK分析函数而不是RANK.

(编辑:李大同)

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

    推荐文章
      热点阅读