年级表
年级id 评分id
主key 年级id,评分ID分为7个级别
班级表
年级id 班级id
双主key 年级id 班级id
我想查出每个评分下的年级id,班级id,评分id,并且每个评分下的年级id数最大只查出10件,按年级id排序。
大家帮帮忙,谢谢
------解决方案--------------------
SELECT * FROM (SELECT a.年级id,b.班级id,a.评分id,row_number() OVER(PARTITION BY a.评分id ORDER BY a.评分id) rn FROM 年级表 a,班级表 b WHERE a.年级id=b.年级id(+)) WHERE rn<=10;
------解决方案--------------------
你的意思是<=10条记录,还是10个年级额,如果是10个年级:
select t4.pfid, t4.njid, t3.bjid
from (select t2.*, row_number() over(partition by pfid order by njid) rnn
from (select nj.pfid, bj.njid
from nj
left join bj
on nj.njid = bj.njid
group by nj.pfid, bj.njid) t2) t4,
bj t3
where t4.njid = t3.njid
and t4.rnn <= 10
order by t4.pfid, t4.njid, t3.bjid