现有课程选修表,要求统计出每个学生所选的课程数及学科数,选修课数据如下
sql如下:
结果如下:
SNO SCORE NAME CATEGORY
1 23 语文 文科
1 34 政治 文科
1 3 物理 理科
1 4 数学 理科
1 33 化学 理科
2 3 体育 实践课
sql如下:
select *
from (select sno,
count(name) over(partition by sno) nameNum,
count(distinct category) over(partition by sno)categoryNum,
row_number() over(partition by sno order by score) rn
from ZZZ_TEST t)
where rn = 1
结果如下:
SNO NAMENUM CATEGORYNUM RN
1 5 2 1
2 1 1 1