用于获得所有季度中每个ID的MAX先前分数的最佳方法.
@H_301_7@
@H_301_7@鉴于:
@H_301_7@
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@H_301_7@预期: @H_301_7@
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窗口函数来实现它.
@H_301_7@
@H_301_7@
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);@H_301_7@查询1: @H_301_7@
SELECT t1.ID,t1.QTR,max(score) over(partition by ID order by QTR) score FROM T t1@H_301_7@Results: @H_301_7@
| 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 |