比如数据库是
id classid name
1 2 小王
2 1 小丽
3 2 小惠
4 3 小马
5 2 小小
6 3 晓明
7 1 小虎
我想查询结果这样排序并显示
id classid name
2 1 。。。
7 1 ..
1 2
3 2
5 2
4 3
6 3
如何使用group by 获取每个分类5条记录?
答案:2 悬赏:80 手机版
解决时间 2021-01-26 20:30
- 提问者网友:城市野鹿
- 2021-01-26 07:59
最佳答案
- 五星知识达人网友:煞尾
- 2021-01-26 08:44
ORACLE/DB2:
SELECt id, classid, name
FROM (SELECt id, classid, name, ROW_NUMBER() OVER(PARTITION BY classid order by id) rk from tab) t
WHERe rk <= 5
order by classid
SELECt id, classid, name
FROM (SELECt id, classid, name, ROW_NUMBER() OVER(PARTITION BY classid order by id) rk from tab) t
WHERe rk <= 5
order by classid
全部回答
- 1楼网友:有你哪都是故乡
- 2021-01-26 10:17
你好!
不和聚合函数配合使用的话,group by是没有意义的。实现楼主的目的,用以下Sql可以实现:
select * from tb A where (select count(1) from tb where classid=A.classid and id<=a.id)<5
如果对你有帮助,望采纳。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯