{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

请问各位DBA大佬,SQL如何进行多对多表的统计排序分页查询?

kelkel 回答0 收藏1
问题描述:现在有三张表student和course表,里面都有id和name,还有一张是中间表选课表relationship里面分别有两个字段course_id和student_id. 现在的需求就是,查询所有的学生,并通过统计该学生所选的课的数量进行倒序排序,最后实现进行分页(每页十条数据)
收藏问题

2条回答

Yi_Zhi_Yu

Yi_Zhi_Yu

回答于2022-06-28 14:16

以oracle为例:

SELECT * FROM

(

SELECT A.*, ROWNUM RN

FROM (SELECT rs.student_id,count(1) FROM relationship rs group by rs.student_id order by count(1) desc) A

WHERE ROWNUM <= 10

)

WHERE RN >= 0

评论0 赞同0
  •  加载中...
yzzz

yzzz

回答于2022-06-28 14:16

select student.student_name, count(relationship.course_id) from student

left join relationship on student.student_id = relationship.student_id

group by student.student_id

order by count(relationship.course_id) desc limit 0, 10;

第一页就是limit 0,10第二页就是limit 10,10

具体传入的参数自己写一个PageUtil就可以了。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<