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

Oracle SQL:以前所有季度中的MAX之前的疼痛

发布时间:2020-12-12 12:40:34 所属栏目:百科 来源:网络整理
导读:用于获得所有季度中每个ID的MAX先前分数的最佳方法. 鉴于: ID QTR SCORE 21 1 3 21 2 5 21 3 3 21 4 3 41 1 2 41 2 2 41 3 4 41 4 2 预期: ID QTR PREV_MAX_SCORE 21 1 3 21 2 5 21 3 5 21 4 5 41 1 2 41 2 2 41 3 4 41 4 4 解决方法 你可以尝试使用MAX窗
用于获得所有季度中每个ID的MAX先前分数的最佳方法.

鉴于:

ID  QTR SCORE 
    21  1   3 
    21  2   5 
    21  3   3 
    21  4   3 
    41  1   2 
    41  2   2 
    41  3   4 
    41  4   2

预期:

ID  QTR PREV_MAX_SCORE
    21  1   3   
    21  2   5   
    21  3   5   
    21  4   5   
    41  1   2   
    41  2   2   
    41  3   4
    41  4   4

解决方法

你可以尝试使用MAX窗口函数来实现它.

CREATE TABLE T(
  ID int,QTR int,SCORE int
);


insert into t values (21,1,3); 
insert into t values (21,2,5); 
insert into t values (21,3,4,3); 
insert into t values (41,2); 
insert into t values (41,4); 
insert into t values (41,2);

查询1:

SELECT t1.ID,t1.QTR,max(SCORE) over(partition by ID order by QTR) SCORE
FROM T t1

Results:

| ID | QTR | SCORE |
|----|-----|-------|
| 21 |   1 |     3 |
| 21 |   2 |     5 |
| 21 |   3 |     5 |
| 21 |   4 |     5 |
| 41 |   1 |     2 |
| 41 |   2 |     2 |
| 41 |   3 |     4 |
| 41 |   4 |     4 |

(编辑:李大同)

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

    推荐文章
      热点阅读