有张表 tb_a 其中有 3 个字段 a,b,ctime
a 唯一,b有重复,ctime为时间字段
现在想找按ctime倒序排序的,其中b唯一的 10条记录,该怎么写SQL语句?
a 唯一,b有重复,ctime为时间字段
现在想找按ctime倒序排序的,其中b唯一的 10条记录,该怎么写SQL语句?
解决方案 »
- 11g安装问题
- oracle audit,如何审计ORACLE日志
- 小白提问:Oracle中SQL语句记录操作(涉及时间比较)的问题
- 在trigger中,涉及基本表的操作该如何处理啊?
- 求一sql
- 在Oracle数据库中写一个查询表记录的存储过程为什么报错?
- 服务名和SID有什么区别?怎么修改本机的SID?
- 如何把一个数据库中数据导到另一个表结构已经定义好的数据库中!急(与datalink有关)
- 请教在哪能拿到象SQL Server一样的Oracle联机帮助呢?
- 紧急求助: 在执行SQL语句时出现如下提示:ORA-03232: unable to allocate an extent of 46 blocks from tablespace 3
- oracle 语句优化问题
- (转载)【独家连载】企业级GoldenGate实战揭秘(从4开始)
from (select a,b,ctime,row_number()
over(partition by b order by ctime desc nulls last) rn
from tb_a
)
where rn=1;
是不是这两条记录都不包含在结果中,即使该ctime字段值排在前10位?
如果是:select * from (
select * from tb_a,
(select b from tb_a group by b having count(1)=1) c
where a.b=c.b order by ctime desc) where rownum<11;
select * from tb_a order by ctime desc;
--楼主的意思应该是先取没有重复值的b,然后再按ctime倒序
select a,b,ctime
from tb_a
where b in (select b from tb_a group by b having count(*) = 1)
order by ctime desc