(Sqlserver)sql求连续问题
2024-10-11 11:00:02
题目一:
create table etltable(
name varchar(20) ,
seq int,
money int); create table etltarget (
name varchar(20),
min_s int,
max_s int,
sum_money int); insert into etltable values
('A',1,100),
('A',2,200),
('A',3,300),
('A',8,400),
('A',9,500),
('B',1,100),
('B',2,500),
('B',5,600); 目标表结果应该是这样
A 1 3 600
A 8 9 900
B 1 2 600
B 5 5 600 解答:
select name,
min(seq) as min_s,
max(seq) as max_s,
sum(money) as money
from (
select
*,
seq-row_number() over (partition by name order by name) as rn2--连续的差值会相同
from etltable
) a group by name,rn2--连续的差值相同,按照这个分组即可
order by name
题目二:
with aa
as (
select 1 uid, '2015-6-1 8:20:00' as login_time union all
select 1 uid, '2015-6-2 7:20:05' as login_time union all
select 1 uid, '2015-6-3 21:20:30' as login_time union all
select 2 uid, '2015-6-1 8:10:00' as login_time union all
select 2 uid, '2015-6-3 8:20:00' as login_time union all
select 2 uid, '2015-6-4 18:20:00' as login_time union all
select 1 uid, '2015-6-5 9:20:00' as login_time union all
select 1 uid, '2015-6-6 16:20:00' as login_time union all
select 3 uid, '2015-6-1 8:20:00' as login_time union all
select 1 uid, '2015-6-7 12:20:00' as login_time union all
select 1 uid, '2015-6-8 23:20:00' as login_time union all
select 3 uid, '2015-6-2 8:20:00' as login_time union all
select 3 uid, '2015-6-3 2:20:00' as login_time ) select
uid,min(ds) as min_s,max(ds) as max_s,sum(1) cnt
from (
select * ,
day(login_time) ds,
day(login_time)-row_number() over (partition by uid order by login_time) as rn
from aa
) a
group by uid,rn
最新文章
- CSharpGL(20)用unProject和Project实现鼠标拖拽图元
- cookie---session
- String类的equals是如何进行字符串比较的
- 分享我开发的网络电话Android手机APP正式版,图文详解及下载
- centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序
- Flume Hello World!
- uml的关联多重度
- 获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)
- 【转】 NSString / NSMutableString 字符串处理,常用代码 (实例)
- MySQL的数据库引擎的类型
- ASP.NET开发的大型网站有哪些架构方式
- Unity3D学习(三):利用NGUI实现一个简单的左右摇杆
- 织梦dedecms如何修改关键词的字数长度限制
- PHP workMan webSocket 转发器
- Java8-对map过滤
- win10家庭版,双击bat文件无法运行(double click bat file does not execute)
- Golang 的 协程调度机制 与 GOMAXPROCS 性能调优
- _mount_vendor
- (百度)centos7上安装apache指南
- SQL基本概念
热门文章
- Autofac的基本使用---4、使用Config配置
- iOS崩溃治理--开篇
- 超详细的第一个Servlet程序
- Qt学习笔记-Qtcreator的webkit和qt4.7.0的版本有关
- Maven仓库是什么
- SpringBoot 2.X以上集成redis
- Alpha冲刺——汇总博客
- MySQL [ERROR] Table 'mysql.user' doesn't exist
- Ubuntu/Liinux睡眠无法唤醒解决方法:ACPI设置
- 自定义注解,更优雅的使用MP分页功能