mysql一个SQL案例
2024-10-07 01:30:41
需求 :
测试数据
create table test1_3(id int primary key auto_increment,username varchar(10),start1 int,end1 int);
insert into test1_3(username,start1,end1) values('A',1,2);
insert into test1_3(username,start1,end1) values('A',3,4);
insert into test1_3(username,start1,end1) values('B',4,5);
insert into test1_3(username,start1,end1) values('A',6,7);
insert into test1_3(username,start1,end1) values('B',7,8);
insert into test1_3(username,start1,end1) values('A',8,9);
解决:
解决2:
解决代码
核心思想,把符合逻辑条件的行,构造相同分组
select * from test1_3; select username,min(start1) start1,max(end1) end1 from (
select test1_3.* ,
if(start1-1=@start1 ANd @username=username,@rn:=@rn,@rn:=@rn+1) as rn,
@username:=username,
@start1:=end1 as '@start'
from test1_3 cross join (select @rn:=0,@start1:=0,@end1:=0,@username:='q') t
order by username,start1
) t1 group by username,rn ;
最新文章
- 【Python基础学习四】字符串(string)
- js 闭包演示
- DirectShow .Net 实现视频
- android 入门-Activity及 字体
- UVA 11573 Ocean Currents --BFS+优先队列
- C# 正则表达式 转自-每日一bo
- MATLAB 随机生成互不重叠的多个矩形
- ZOJ3582:Back to the Past(概率DP)
- HDU_2017——统计数字字符出现的个数
- sql加强练习
- javascript抽象工厂模式
- Android开发四大组件概述
- MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证
- css3新单位vw、vh的使用详解
- 原生JS面试题
- 1286 unknown storage engine innodb
- CF1043
- Java8学习笔记(四)--接口增强
- C#获取文件夹及文件的大小与占用空间的方法
- blktrace + blkparse + btt 分析IO