sql 连续分组判断 partition by
2024-10-21 11:51:54
partition by 会根据分类字段进行排序 加上rownum 可以形成 每组从1开始重新排序
举个例子, 我要根据时间为依据,连续出现合并为一组,统计每组在区间里的次数
---------------------------------------------------
2010-07-18 2010-07-25 359
2010-06-13 2010-07-11 358
2010-06-06 2010-06-06 359
2010-05-16 2010-05-30 360
---------------------------------------------------
可以用以下代码实现
模拟数据
create table x (weekEndDate char(10), storeCount int);
insert into x values
('2010-07-25',359),
('2010-07-18',359),
('2010-07-11',358),
('2010-07-04',358),
('2010-06-27',358),
('2010-06-20',358),
('2010-06-13',358),
('2010-06-06',359),
('2010-05-30',360),
('2010-05-23',360),
('2010-05-16',360);
排序分组语句
select min(weekenddate) as startdate, max(weekenddate) as enddate, min(storecount) as storecount
from
(select weekenddate, storecount, concat(row_number() over (order by weekenddate) -row_number() over (partition by storecount order by weekenddate),'|',storecount) as groupkey from x) w
group by groupkey order by startdate desc;
根据普通排序 order by 与 分区排序 partition by 做排序相减 就可以得到 新的分组列,我们就知道按照这个列去得到我们要的结果了
最新文章
- Python 中的map和reduce学习笔记
- [转]linux shell数据重定向(输入重定向与输出重定向)详细分析
- 操作系统开发系列—12.a.从Loader到内核 ●
- json 判断字段
- AGPS 常见的两种定位模式
- CTSC2014 被虐总结
- hdu 5534 Partial Tree 背包DP
- 单实例运行tz
- 忘记root口令的处理方法
- 关于IIS7.5下的web.config 404 配置的一些问题
- 将文件放到Android模拟器的SD卡中的两种解决方法
- Flex4开发笔记(与JAVA交互)
- 自己实现的sax XML解析,可能会有误
- iptables禁止ping入
- 启动docker容器 防火墙问题报错 ! -i docker0' failed: iptables: No chain/target/match by that name.
- [转] getBoundingClientRect判断元素是否可见
- Multi-Nim游戏结论不变证明
- HihoCoder - 1807:好的数字串 (KMP DP)
- ElasticSearch概述
- 转 configure: error: Cannot find ldap.h
热门文章
- 离线安装python的ibm_db模块
- 利用requests库访问网站
- JMeter基础【第六篇】JMeter5.1事务、检查点、集合点、思考时间、其余设置等
- layoutSubviews的缺省实现是使用约束进行布局
- trait Monad:函数式编程类型系统本博客搜索关键字--类型升降
- arduino入门笔记
- Educational Codeforces Round 47 (Rated for Div. 2) G. Allowed Letters
- docker 服务无法启动
- OpenCV 学习笔记(5) 使用opencv打开笔记本摄像头
- SQL Server Spool 假脱机