Oracle查询分组后获取首尾两条记录
来源:互联网 发布:网络机顶盒 软件 编辑:程序博客网 时间:2024/06/07 18:14
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY d.terminal_id ORDER BY d.clct_date DESC) LEV,
count(0) over(partition by d.terminal_id) cnt,
d.*
FROM t_b_car_info car, t_b_car_terminal ct, t_o_day_info d
where car.id = ct.car_id
and ct.terminal_id = d.terminal_id
and d.clct_date >= nStartDateEx
and d.clct_date <= nEndDateEx
and d.clct_date between ct.terminal_install_date and
ct.terminal_uninstall_date
and car.id = nCarID
and d.end_oil_cost > 0
and d.start_oil_cost > 0)
WHERE LEV = 1
or LEV = cnt
ORDER BY clct_date DESC
————————————————————————————————————————————————————
对多数据进行分组排序后取每组第一条记录
Sql代码
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY <PK_FINANCE_ACCOUNT_1> ORDER BY <amassdate> DESC) LEV,
<hx_amass_liquid>.*
FROM <hx_amass_liquid>)
WHERE LEV = 1
ORDER BY <PK_FINANCE_ACCOUNT_2> DESC
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY <PK_FINANCE_ACCOUNT_1> ORDER BY <amassdate> DESC) LEV,
<hx_amass_liquid>.*
FROM <hx_amass_liquid>)
WHERE LEV = 1
ORDER BY <PK_FINANCE_ACCOUNT_2> DESC
<PK_FINANCE_ACCOUNT_1> -- 分组列
<amassdate> -- 排序列
<hx_amass_liquid> -- 表名
<PK_FINANCE_ACCOUNT_2> -- 排序列
注:<hx_amass_liquid>.* -- 一定要有表名,否则会报“缺失表达式”错误
==========================================================
分组时不仅想取每组的第一条记录,还想取每组共有几条记录
Sql代码
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY PK_FINANCE_ACCOUNT ORDER BY amassdate DESC) LEV,
count(0) over(partition by PK_FINANCE_ACCOUNT) cnt,
hx_amass_liquid.*
FROM
hx_amass_liquid
)
WHERE LEV = 1
ORDER BY PK_FINANCE_ACCOUNT DESC
- Oracle查询分组后获取首尾两条记录
- Oracle 分组后第一条记录
- oracle 保存查询结果,查询分组后的没组的第n条记录
- Oracle分组查询取每组排序后的前N条记录
- oracle或mysql分组查询并且获取前3条排序后的数据
- mysql查询分组后统计记录条数
- orcale 查询分组后的前n条记录
- SQL 表分组后获取最大值的整条记录
- Oracle 分组后取每组的第一条记录
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- Oracle查询前n条、后n条记录
- oracle分组统计查询之后,获取数量最大的记录
- oracle查询:分组查询,取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- sql分组后取第一条记录
- MySQL分组后取3条记录
- 分组查询各组第一条记录
- MySQL 查询分页数据中分组后取每组的前N条记录
- Android Activity 中控制屏幕点亮与关闭 M
- linux下IPTABLES配置详解
- 写了placement new也要写placement delete
- opencms资源被锁定
- Eclipse快捷键大全
- Oracle查询分组后获取首尾两条记录
- 接着上次解析火车和飞机信息导入数据库使用
- u-boot_smdkv210 分析:内存分配
- VS编译器常见错误中英文对照表
- java代码实例 使用switch实现简易的计算器(实现加减乘除)
- MySQL因为区分大小写而引起找不到表
- java 获取文件 总行数
- Linux 下动态库和静态库的创建和调用
- Apache Tomcat开机后台启动