oracle 单表查询

Oracle:资讯分类表(msg_class) 字段(m_id'主键', m_type_id'类型', m_title'标题', insert_time'插入时间');

要求: 通过一次查询or调用函数,
返回结果集(结果集中包含 [color=red]每种类型资讯[/color] 的[color=red]最新[/color]插入的 五条记录)

既然是Oracle,那么使用统计函数应该是最方便的。
大致是:
[code="sql"]select * from (
select rank() over(partition by m_type_id order by insert_time desc) as rk from table
) where rk <=5[/code]

其中rank,rownumber,还有个好像是dense_rank都可以用来排序分组

你就不会试下[code="java"]select * from (

select m_title, rank() over(partition by m_type_id order by insert_time desc) as rk from table

) where rk <=5 [/code]

select c.* form (
select rownum b.* from (
select a.* from msg_class a where d.m_type_id=a.m_type_id order by insert_time desc
) as b where rownum <=5
) as c ,(select distinct m_type_id from msg_class) as d where d.m_type_id=c.m_type_id

试试看行不行,一口气写出来的肯定会有问题的