关于单表中group by,distinct的order by问题

jacob1 2003-05-13 12:16:51
情况描述,现在我在做着个求职的发布系统,有个职位表job,记录所有职位,一个公司可以发布n个职位,所以最新的几个职位有可能是同一个公司发布的.
job表里包括一些如下字段:
id Comid time .....


我希望有语句可以实现这样的功能:搜出最新发布职位的十个公司id,也就是如何按time 的 desc 排序,但小弟对oracle不大熟悉.不知如何实现.以下语句只能搜出十个不同公司.
select a.* from (select Comid from job group by Comid) a where rownum < 11

因为group by和order by 不可以同时用,distnct又不知如何使用,所以只好请问各位高手了.

如果题意不够清晰,我再详述
...全文
138 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-05-13
  • 打赏
  • 举报
回复
select rownum rm,a.* from (select id,rank() over (partition by id order by time desc) num from job order by time desc) a where num=1 and rm<11
beckhambobo 2003-05-13
  • 打赏
  • 举报
回复
select * from (select id,rank() over (partition by id order by time desc) num from job order by time desc) where num=1;
bzszp 2003-05-13
  • 打赏
  • 举报
回复
12:32:12 SQL> select * from tcn;

AAA BBB
---------- ---------
a 1
b 1
b 1
b 1
c 1
d 2
d 5
d 3
d 6
d 11
a 2
a -1
b -1
b 15
c -1
e 1
e 2
e 123.45679
e 1234.5679

已选择19行。

实际:260
12:32:22 SQL> select aaa,max(bbb) b from tcn group by aaa order by b;

AAA B
---------- ---------
c 1
a 2
d 11
b 15
e 1234.5679

实际:100

12:33:30 SQL> select * from(select aaa,max(bbb) b from tcn group by aaa order by b) where rownum<5;

AAA B
---------- ---------
c 1
a 2
d 11
b 15

实际:91
12:33:56 SQL>
lj77 2003-05-13
  • 打赏
  • 举报
回复
select * from ( select Comid, max(time) as lasttime from job group by Comid order by lasttime desc ) where rownum < 11;
jacob1 2003-05-13
  • 打赏
  • 举报
回复
很抱歉,各位,我都试过了,只有lj77(牛) 的语句才是正确的,bzszp(SongZip) 你的语句还是不行,搜出有结果但不正确,呵呵,我也分析不出为什么,要不你看看lj77(牛) 的语句再分析分析?
dihai2000 2003-05-13
  • 打赏
  • 举报
回复
select * from ( select Comid, max(time) as lasttime from job group by Comid order by lasttime desc ) where rownum < 11

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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