Oracle 中 RowNumer的用法...
---RowNumer的用法---
/*
--来源自 www.itpub.net--
这个sql如何写?
一个表,有两个字段
sn,money
1 10
2 2
3 50
5 3
6 40
9 100
......
现在要写一个查询,将sn连续的行合并成一条数据,money字段求和
如:
1-3 62
5-6 43
9 100
能否用一条sql搞定?
*/
--Create Table TB_B--
Create Table TB_B
(
sn number(2),
money number(4)
)
--Insert data to Table--
insert into TB_B
select 1,10 from dual
union
select 2,2 from dual
union
select 3,50 from dual
union
select 5,3 from dual
union
select 6,40 from dual
union
select 9,100 from dual
--Retrieve Sql--
select case when min(sn)=max(sn) then
to_char(min(sn))
else
to_char(min(sn))||'-'||to_char(max(sn))
end
,sum(money) money
from TB_B
group by sn-rownum
order by min(sn)
--Rownm 的解释--
/*
SQL> select sn,rownum,sn-rownum from tb_b;
SN ROWNUM SN-ROWNUM
---------- ---------- ----------
1 1 0
2 2 0
3 3 0
5 4 1
6 5 1
9 6 3
其实就是利用sn和rownum的差值来判断sn是否连号
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架