SQL取分组后每组中的一条特定记录
2015-07-22 00:00
330 查看
摘要: 按照分组条件group by后,每组中可能有多条数据,现要求每组只取一条数据,如创建时间最新的那条。Oracle数据库可以利用分析函数row_number()、over()实现,也可以通过普通sql语句实现。
数据库表结构:
其中主键字段为:flight_month、carrier、ticket_type、created_dt(创建时间);
按flight_month、carrier、ticket_type分组,每组中取创建时间最新的一条数据;
Oracle数据库可以用如下sql:
普通的sql语句也可以,用exists子句实现:
数据库表结构:
其中主键字段为:flight_month、carrier、ticket_type、created_dt(创建时间);
按flight_month、carrier、ticket_type分组,每组中取创建时间最新的一条数据;
Oracle数据库可以用如下sql:
select * from( select t.*,row_number() over(partition by t.flight_month,carrier,ticket_type order by t.created_dt desc) rn from SA_AGENT_FEE_MON_OTHER t) where rn = 1
普通的sql语句也可以,用exists子句实现:
select * from SA_AGENT_FEE_MON_OTHER t1 where not exists( select * from SA_AGENT_FEE_MON_OTHER t2 where t1.flight_month = t2.flight_month and t1.carrier = t2.carrier and t1.ticket_type = t2.ticket_type and t1.created_dt < t2.created_dt )
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马
- 分割超大Redis数据库例子
- 重装主控服务器后,数据库连接失败的解决办法:请正确还原数据库。