oracle 问题(现在分不够)

xiaomaha 2009-09-10 11:30:13
比如表为: test

id type
1 一般
2 一般
3 一般
4 一般
5 一般
6 一般
7 一般
8 一般
9 紧急
10 紧急
11 紧急
12 紧急
13 紧急
14 紧急
15 紧急
16 紧急
17 紧急
18 紧急


根据 type不同类型各取 5 条记录 谢谢帮我解决下 分不够


想要的到的结果:
1 一般
2 一般
3 一般
4 一般
5 一般
9 紧急
10 紧急
11 紧急
12 紧急
13 紧急

...全文
93 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SQL> SELECT x.id, x.type
2 FROM (SELECT t.*, row_number() OVER(PARTITION BY t.type ORDER BY t.id) rn
3 FROM test t
4 ORDER BY t.id) x
5 WHERE rn <= 5;

ID TYPE
--------- --------------------
1 一般
2 一般
3 一般
4 一般
5 一般
9 紧急
10 紧急
11 紧急
12 紧急
13 紧急

10 rows selected

SQL>
xiaomaha 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liushaoyi0704 的回复:]
select a.id,a.type from test a where type='一般' and rownum <6
union
select b.id,b.type from test b where type='紧急' and rownum <6
[/Quote]

谢谢能不能有其它办法?
化外之民 2009-09-10
  • 打赏
  • 举报
回复
select a.id,a.type from test a where type='一般' and rownum<6
union
select b.id,b.type from test b where type='紧急' and rownum<6
xiaomaha 2009-09-10
  • 打赏
  • 举报
回复
帮帮忙啊`谢谢了`

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧