17,086
社区成员
发帖
与我相关
我的任务
分享
select id,name,score,couse,sum(score) over(partition by id) sumscore,
row_number() over(partition by id order by couse) rn
from tablename;
with tab as(
select 1 as ID, 'JIM' as NAME, 60 as SCORE, 'MATH' as COUSE from dual union all
select 1 as ID, 'JIM' as NAME, 70 as SCORE, 'ENGLISH' as COUSE from dual union all
select 1 as ID, 'JIM' as NAME, 40 as SCORE, 'CHINESE' as COUSE from dual union all
select 2 as ID, 'TOM' as NAME, 89 as SCORE, 'MATH' as COUSE from dual union all
select 2 as ID, 'TOM' as NAME, 80 as SCORE, 'CHINESE' as COUSE from dual
)
select id,name,SCORE, couse, sum(score) over(PARTITION by name order by ID) SUM_SCORE, row_number() over(PARTITION by name order by id) from tab
--------------------------------------------------------------------
1 JIM 60 MATH 170 1
1 JIM 70 ENGLISH 170 2
1 JIM 40 CHINESE 170 3
2 TOM 89 MATH 169 1
2 TOM 80 CHINESE 169 2
select t.*,sum(SCORE) over(partition by ID,NAME ),
sum(1) over(partition by ID, name order by SCORE desc ) from student t
with tb as(
select 1 ID,'JIM' NAME,60 SCORE,'MATH' COUSE from dual union all
select 1, 'JIM', 70, 'ENGLISH' from dual union all
select 1, 'JIM', 40, 'CHINESE' from dual union all
select 2, 'TOM', 89, 'MATH' from dual union all
select 2, 'TOM', 80, 'CHINESE' from dual)
--以上为提供数据的语句
select id,name,score,couse,sum(score) over(partition by id) sumscore,
row_number() over(partition by id order by couse) rn
from tb
ID NAM SCORE COUSE SUMSCORE RN
--------- --- ---------- ------- ---------- ----------
1 JIM 40 CHINESE 170 1
1 JIM 70 ENGLISH 170 2
1 JIM 60 MATH 170 3
2 TOM 80 CHINESE 169 1
2 TOM 89 MATH 169 2
select ID,NAME,SCORE,COUSE,SUM(SCORE) OVER(PARTITION BY NAME ORDER BY ID) SUM_SCORE,
ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY COUSE) NUM
FROM student