(Sqlserver)sql求连续问题
- 题目一:
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
(Sqlserver)sql求连续问题的更多相关文章
- 求连续出现5次以上的值,并且取第5次所在id
关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: --测 ...
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- Sqlserver Sql Agent Job 只能同时有一个实例运行
Sqlserver Sql Agent中的Job默认情况下只能有一个实例在运行,也就是说假如你的Sql Agent里面有一个正在运行的Job叫"Test Job",如果你现在再去启 ...
- 用SQL求1到N的质数和
今天在百度知道中,遇到了一位朋友求助:利用sql求1到1000的质数和.再说今天周五下午比较悠闲,我就在MSSQL 2008中写了出来,现在分享在博客中,下面直接贴代码: declare @num i ...
- 求连续数字的和------------------------------用while的算法思想
前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...
- SQLSERVER SQL性能优化技巧
这篇文章主要介绍了SQLSERVER SQL性能优化技巧,需要的朋友可以参考下 1.选择最有效率的表名顺序(只在基于规则的优化器中有效) SQLSERVER的解析器按照从右到左的顺序处理F ...
- sqlserver sql优化案例及思路
始sql: SELECT TOP 100 PERCENT ZZ.CREW_NAME AS 机组, ZZ.CREW_ID, AA.年度时间, CC.当月时间, DD.连续七天时间 AS 最近七天 FRO ...
- 一个SQL查询连续三天的流量100以上的数据值【SQql Server】
题目 有一个商场,每日人流量信息被记录在这三列信息中:序号 (id).日期 (date). 人流量 (people).请编写一个查询语句,找出高峰期时段,要求连续三天及以上,并且每天人流量均不少于10 ...
- sql求日期
2.求以下日期SQL: 昨天 select convert(varchar(10),getdate() - 1,120) 明天 select convert(varchar(10),getdate() ...
随机推荐
- python序列(七)序列操作的常用内置函数
1.len(列表):返回:列表中的元素个数,同样适用于元组.字典.集合.字符串等. max(列表).min(列表):返回列表中的最大或最小元素同样适用于元组.字典.集合.range对象等. sum(列 ...
- JVM笔记【1】-- 运行时数据区
目录 (一)java内存区域管理 1.1 程序计数器 1.2 虚拟机栈 1.3 本地方法栈 1.4 java堆 1.5 方法区 1.5.1 运行时常量池 (二)直接内存 (一)java内存区域管理 C ...
- 我的 2020:出书、办签售会、发展 VS Code 中文社区、成为开源先锋、全网 10 万粉丝、10 场演讲、内推 21 人、955.WLB 发扬光大
感觉写 2019 年终总结还是在不久之前.转眼间,2020 已经接近尾声了.是时候来写写 2020 年的年终总结了. 出书 今年最高兴的事情之一,就是出了全球首本 VS Code 中文书 -- < ...
- Dubbo SPI源码解析①
目录 0.Java SPI示例 1.Dubbo SPI示例 2.Dubbo SPI源码分析 SPI英文全称为Service Provider Interface.它的作用就是将接口实现类的全限定名 ...
- Markdown高级使用之流程图
流程图在Markdown中的的表现形式就是代码块,代码块语言标记为mermaid.主要内容大体分为:方向.节点.节点间的连接关系,下面就围绕这三个点来整理. mermaid支持流程图.甘特图和时序图, ...
- Centos7 keepalived 修改日志路径
Keepalived默认所有的日志都是写入到/var/log/message下的,由于message的日志太多了,而Keepalived的日志又很难分离出来,所以本文提供了一个调整Keepalived ...
- Eclipse导入外部jar包的步骤
(1)首先在项目的跟目录下先建一个名字为lib的文件夹,通常外部导入的jar包都放在这个文件夹下面. (2)将需要用到的jar包复制到lib文件夹下面. (3)在项目中导入jar包 右键项目,选择Bu ...
- linux based bottlerocket-os
linux based bottlerocket-os 概要 aws开源,专注与运行容器的linux os 参看 https://github.com/bottlerocket-os
- jquery-from+php 文件上传
闲话不多说上代码 前端代码 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charse ...
- Netty源码解析 -- 对象池Recycler实现原理
由于在Java中创建一个实例的消耗不小,很多框架为了提高性能都使用对象池,Netty也不例外. 本文主要分析Netty对象池Recycler的实现原理. 源码分析基于Netty 4.1.52 缓存对象 ...