查询每小时的累计量的SQL语句怎么写?

lengxl 2020-02-29 01:41:38
表结构和数据
时间 累计量
2020-02-24 00:01:00 100
2020-02-24 00:02:00 300
2020-02-24 00:03:00 400
..............
2020-02-24 23:59:00 3000

表数据每一分钟会插入一条,累计量会不断增加,现在需要查询统计每小时整点的时候累计量比上一小时整点的时候增加了多少?这个SQL语句怎么写,谢谢
...全文
1096 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sichuanwww 2020-03-03
  • 打赏
  • 举报
回复
luj_1768 2020-03-03
  • 打赏
  • 举报
回复
select * from table1, where ... 把* 换成 COUNT 就行了。
lengxl 2020-03-02
  • 打赏
  • 举报
回复
引用 7 楼 Hello World, 的回复:
跨天的加一个时间段作为条件即可
版主,怎么加时间段,我自己试了一下不行,还需要你提供一下sql语句,谢谢
lengxl 2020-03-02
  • 打赏
  • 举报
回复
引用 9 楼 Hello World, 的回复:
类似以下:
DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-23 23:59:59',10),('2020-02-24 00:59:59',100),
('2020-02-24 01:30:00',200),('2020-02-24 01:59:59',300),
('2020-02-24 02:30:00',340),('2020-02-24 02:59:59',400),
('2020-02-24 03:30:00',440),('2020-02-24 03:59:59',500),
('2020-02-24 04:30:00',540),('2020-02-24 04:59:59',600),
('2020-02-24 05:30:00',640),('2020-02-24 05:59:59',700),
('2020-02-24 06:30:00',840),('2020-02-24 06:59:59',900)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:59:59'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间 WHERE a.时间<'2020-2-25')
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
搞定了,谢谢版主
Hello World, 2020-03-02
  • 打赏
  • 举报
回复
跨天的加一个时间段作为条件即可
lengxl 2020-03-02
  • 打赏
  • 举报
回复
引用 9 楼 Hello World, 的回复:
类似以下:
DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-23 23:59:59',10),('2020-02-24 00:59:59',100),
('2020-02-24 01:30:00',200),('2020-02-24 01:59:59',300),
('2020-02-24 02:30:00',340),('2020-02-24 02:59:59',400),
('2020-02-24 03:30:00',440),('2020-02-24 03:59:59',500),
('2020-02-24 04:30:00',540),('2020-02-24 04:59:59',600),
('2020-02-24 05:30:00',640),('2020-02-24 05:59:59',700),
('2020-02-24 06:30:00',840),('2020-02-24 06:59:59',900)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:59:59'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间 WHERE a.时间<'2020-2-25')
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
版主,我还需要查询2020-02-23 23:59:59到2020-02-24 00:59:59的增量90,这个数。我自己试了试,没弄出来,
Hello World, 2020-03-02
  • 打赏
  • 举报
回复
类似以下:
DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-23 23:59:59',10),('2020-02-24 00:59:59',100),
('2020-02-24 01:30:00',200),('2020-02-24 01:59:59',300),
('2020-02-24 02:30:00',340),('2020-02-24 02:59:59',400),
('2020-02-24 03:30:00',440),('2020-02-24 03:59:59',500),
('2020-02-24 04:30:00',540),('2020-02-24 04:59:59',600),
('2020-02-24 05:30:00',640),('2020-02-24 05:59:59',700),
('2020-02-24 06:30:00',840),('2020-02-24 06:59:59',900)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:59:59'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间 WHERE a.时间<'2020-2-25')
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t

lengxl 2020-03-01
  • 打赏
  • 举报
回复
引用 2 楼 Hello World, 的回复:
上面的增量忘记用当前累计量去减了
DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-24 00:00:00',100),
('2020-02-24 00:30:00',200),
('2020-02-24 01:00:00',300),
('2020-02-24 01:30:00',340),
('2020-02-24 02:00:00',400),
('2020-02-24 03:00:00',3000)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:00:00'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间)
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
表数据每一分钟会插入一条,累计量会不断增加,如果表数据是这样的,需要查询出来2020-02-24这一天每个小时的增量,牵扯到跨天怎么处理? 表结构和数据 时间 累计量 2020-02-23 23:59:59 50 ........ 2020-02-24 00:59:59 100 2020-02-24 01:00:59 200 2020-02-24 01:01:59 300 .............. 2020-02-24 01:59:59 400 .............. 2020-02-24 22:59:59 2800 .............. 2020-02-24 23:59:59 3000 查询结果 2020-02-24 00:59:59 50 2020-02-24 01:59:59 300 .............. 2020-02-24 22:59:59 ..... 2020-02-24 23:59:59 200
lengxl 2020-03-01
  • 打赏
  • 举报
回复
引用 4 楼 Seagull16 的回复:
Replace CTE(with..as..) with Subquery
用子查询,sql语句怎么写
Seagull16 2020-03-01
  • 打赏
  • 举报
回复
Replace CTE(with..as..) with Subquery
lengxl 2020-02-29
  • 打赏
  • 举报
回复
引用 2 楼 Hello World, 的回复:
上面的增量忘记用当前累计量去减了
DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-24 00:00:00',100),
('2020-02-24 00:30:00',200),
('2020-02-24 01:00:00',300),
('2020-02-24 01:30:00',340),
('2020-02-24 02:00:00',400),
('2020-02-24 03:00:00',3000)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:00:00'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间)
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
不用 with 。。。。 as能实现吗?
Hello World, 2020-02-29
  • 打赏
  • 举报
回复
上面的增量忘记用当前累计量去减了

DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-24 00:00:00',100),
('2020-02-24 00:30:00',200),
('2020-02-24 01:00:00',300),
('2020-02-24 01:30:00',340),
('2020-02-24 02:00:00',400),
('2020-02-24 03:00:00',3000)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:00:00'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间)
SELECT *,t.累计量-LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
Hello World, 2020-02-29
  • 打赏
  • 举报
回复
如果是查询某个确定的区间就好办,如果不确定某日期段内的起始区间可以先查出来:
以下示例简化了数量,仅用了整小时的,因为CET里会过滤的

DECLARE @t TABLE(时间 DATETIME,累计量 INT)
INSERT @t(时间, 累计量)
VALUES('2020-02-24 00:00:00',100),
('2020-02-24 01:00:00',300),
('2020-02-24 02:00:00',400),
('2020-02-24 03:00:00',3000)
;WITH t AS (SELECT * FROM @t WHERE 时间='2020-02-24 00:00:00'
UNION ALL SELECT a.* FROM @t a INNER JOIN t ON DATEADD(HOUR,1,t.时间) = a.时间)
SELECT *,LAG(t.累计量) OVER (ORDER BY t.时间) 增量 FROM t
王中王体育馆管理软件介绍 一、简介 王中王体育馆管理软件也称【羽毛球管理软件】【羽毛球管理系统】【羽毛球馆管理系统】【羽毛球馆管理软件】【羽毛球馆收费软件】【羽毛球馆计费软件】是一套用于羽毛球馆、羽毛球场、体育馆、网球馆、台球厅等体育场馆的专业优秀的电脑收费管理系统。该系统采用先进的dotnet开发技术,结合国内先进的管理思想和管理方法,历经2年开发而成。集POS收银收费管理,场地按时计费管理,优惠卡管理,场地管理、场地预订,会员管理,等强大功能为一身。能够有效的杜绝管理上的漏洞,使客户和经营者的联系更加紧密减少客户的流失,大幅度降低管理工作的工作, 降低服务员的劳动强度节约成本,使您的经营管理变得轻松简单。持卡消费真正让客户感受到球馆的档次 二、管理特色: 王中王羽毛球管理软件跟国内其他同类相比,最大的特点是采用独创的价格规则来定义场地价格,使场地价格定义方式灵活、强大、操作非常简单。可以实现任意的您能想到的优惠方案,而设置时只需要增加一条价格规则。不像其他软件,您需要对每个场地不同时间,输入不同的价格,输到你头昏。其他的特点下面依次展开论述。 2.1场地价格定义灵活方便、功能强大。 系统出厂时已经设置了定价规则。用户可以自定义定价规则。定价规则有四个要素: ? 客户 (可以指定为全部、会员、非会员、或者通过公式指定的一部分会员) ? 场地 (可以指定全部场地、一类场地,比如羽毛球场、或者其中的几片场地、一片场地) ? 时间:可以指定为全部时间,或者部分时间:比如节假日、春节、五一、十一 ? 周末,选择时间非常方便 ? 价格,支持按小时或者按次计费缺省一次是2小时,可以参数设置一次的长短 系统可以建立无数个定价规则,规则有优先级别,级别高的规则起作用,这样理论上系统可以实现无穷个价格方案,而付出的成本却是异常低廉的,这为经营者发挥营销才能 提供了物质基础。举个例子:老板说,我要实现“过生日的会员在每天下午6点到7点打球只要10元/小时”,试问国内那个软件可以实现?而我们可以轻松实现。 您也许会说,定价规则很复杂,我不会使用怎么办?您放心。定价规则可以方便导入导出,如果您不懂设置价格规则,我们可以帮助你设置,然后把价格规则发送给你,使您解除后顾之忧。同时系统里内置规则中实现了多种收费标准,您可以随意选择使用。 2.2场地预定简单、方便。 系统支持临时、每日、每周三种类型的预定,每日、每周预订只要录入一次、到时间会自动显示在界面上、场地的状态图会自动显示场地已经被预订、过了预订时间后场地的状态又会自动还原。 2.3界面美观大方全键盘操作 (不用鼠标也能操作),多达26多种皮肤,100%满足您的个性要求。 2.4强大的优惠卡管理功能。 支持四种类型的优惠卡。 按次计算的优惠卡:比如300元10次卡(每次1小时) 按时间计算的优惠卡 :比如500元20小时卡, 现金充值卡:面值1000元,售价800元,相当于打八折 包时卡:如:包打一年1000元 支持优惠卡新卡登记、优惠卡销售、优惠卡充值功能。 2.5强大的会员管理 支持会员照片、支持摄像头照相。 支持会员充值、转账 会员消费查询 会员密码,设置密码后,不用带卡也可以消费 支持会员组概念,系统提供了很多公式,可以方便快速 对会员分组,比如: 50岁以上会员 20岁以上50以下会员 20岁以下会员 积分大于100的会员 积分大于1000的会员 今天过生日的会员 累计消费超过10000元的会员 余额超过5000元的会员 入会超过2年的老顾客 通过分组,可以实现复杂的收费规则,而实现起来却非常简单 会员卡支持磁卡、ID卡、IC卡、MF1卡(非接触IC卡)多种介质 目前支持深圳方卡M1读卡机,常州银联M1读卡机其他类型的读卡机 在不断增加。 2.6支持POS销售商品。 支持商品的条码管理,支持入库,销售,库存等,可按照商品上的条码建立商品信息,销售时直接用条码扫描枪进行扫描,方便快速;支持LED客户显示屏,方便客户 2.7可以打印多种小票 开场单、结账单、售卡单、充值单、会员转账单。 是否打印可以参数设置 2.8定时提醒功能。 支持预订到达前30(可以设置)分钟每1(可以设置)分种提示一次 场地到时退场提醒,也支持设置提前时间,频率。 提示方式多样,会出现小老人,同时状态栏出现信息图标。 支持声音提示 2.9两种收费方式。 普通【租场后付款】 预付【租场前付款】 2.10直观的场地状态图 场地图形化,完善强大的tooltip功能 场地状态图以不同的图形显示:占用、预订、已付款、停用、空闲五种状态。 场地时序图以另外一个视角显示场地占用情况,可以清楚的看到那些场地的利用效率高、那些效率低。 自定义场地状态图,可以自己设定场地的行列位置,可以设置显示的图形(木地板还
王中王羽毛球馆管理软件介绍 一、简介 王中王羽毛球馆管理软件也称【羽毛球管理软件】【羽毛球管理系统】【羽毛球馆管理系统】【羽毛球馆管理软件】【羽毛球馆收费软件】【羽毛球馆计费软件】是一套用于羽毛球馆、羽毛球场、体育馆、网球馆、台球厅等体育场馆的专业优秀的电脑收费管理系统。该系统采用先进的dotnet开发技术,结合国内先进的管理思想和管理方法,历经2年开发而成。集POS收银收费管理,场地租金分时段分场地计费管理,场地预订,会员管理,短信预定管理、灯光控制、语音交互等强大功能为一身。能够有效的杜绝管理上的漏洞,使客户和经营者的联系更加紧密减少客户的流失,大幅度降低管理工作的工作, 降低服务员的劳动强度节约成本,使您的经营管理变得轻松简单。持卡消费真正让客户感受到球馆的档次. 本系统适合于以下场馆使用:羽毛球馆,乒乓球馆,体育馆、体育中心,网球馆,保龄球馆, 沙狐球馆, 台球馆, 高尔夫馆, 瑜伽馆 馆,武术馆馆, 泰拳道馆馆,柔道馆馆, 健身房馆,游泳馆, 溜冰场馆,篮球场馆,足球场馆, 射击场馆, 卡丁车场馆, 滑雪场馆,潜水俱乐部馆等等 下图为自定义界面全屏显示: 二、管理特色: 王中王羽毛球管理软件跟国内其他同类相比,最大的特点是采用独创的价格规则来定义场地价格,使场地价格定义方式灵活、强大、操作非常简单。可以实现任意的您能想到的优惠方案,而设置时只需要增加一条价格规则。不像其他软件,您需要对每个场地不同时间,输入不同的价格,输到你头昏。其他的特点下面依次展开论述。 2.1场地价格定义灵活方便、功能强大。 系统出厂时已经设置了定价规则。用户可以自定义定价规则。定价规则有四个要素: ? 客户 (可以指定为全部、会员、非会员、或者通过公式指定的一部分会员) ? 场地 (可以指定全部场地、一类场地,比如羽毛球场、或者其中的几片场地、一片场地) ? 时间:可以指定为全部时间,或者部分时间:比如节假日、春节、五一、十一 ? 周末,选择时间非常方便 ? 价格,支持按小时或者按次计费缺省一次是2小时,可以参数设置一次的长短 系统可以建立无数个定价规则,规则有优先级别,级别高的规则起作用,这样理论上系统可以实现无穷个价格方案,而付出的成本却是异常低廉的,这为经营者发挥营销才能 提供了物质基础。举个例子:老板说,我要实现“过生日的会员在每天下午6点到7点打球只要10元/小时”,试问国内那个软件可以实现?而我们可以轻松实现。 您也许会说,定价规则很复杂,我不会使用怎么办?您放心。定价规则可以方便导入导出,如果您不懂设置价格规则,我们可以帮助你设置,然后把价格规则发送给你,使您解除后顾之忧。同时系统里内置规则中实现了多种收费标准,您可以随意选择使用。 2.2商品折扣定义方便灵活。 商品折扣支持简单折扣和复杂折扣。 简单折扣只要定义每个商品的会员价和零售价。 复杂折扣可以根据 时间【平时,闲时,白天、晚上】 客人【所以人,会员、非会员、一部分会员】 商品【全部商品、部分商品、部分商品类别】 数的不同而使用不同的折扣。可以方便的实现开业优惠、节日促销。 可以实现的典型的优惠方案: 开业五折优惠 购买可口可乐5瓶以上10瓶以内打8折 金卡会员晚上8点到10点购买脉动可以达8.6折。 2.3场地预定简单、方便。 系统支持临时、每日、每周三种类型的预定,每日、每周预订只要录入一次、到时间会自动显示在界面上、场地的状态图会自动显示场地已经被预订、过了预订时间后场地的状态又会自动还原。提供史上最强大的图形查询界面,可以按日、按周、按月查询预订信息。预订人可以临时取消不来,操作灵活。支持球票管理,出售球票时自动产生预订。开场时无需付款. 2.4界面美观大方全键盘操作 (不用鼠标也能操作),多达26多种皮肤,100%满足您的个性要求。 2.5强大的优惠卡管理功能。 支持四种类型的优惠卡。 按次计算的优惠卡:比如300元10次卡(每次1小时) 按时间计算的优惠卡 :比如500元20小时卡, 现金充值卡:面值1000元,售价800元,相当于打八折 包时卡:如:包打一年1000元 支持优惠卡新卡登记、优惠卡销售、优惠卡充值功能。 2.6强大的会员管理 支持会员照片、支持摄像头照相。 支持会员充值、转账 会员消费查询 会员密码,设置密码后,不用带卡也可以消费 支持会员组概念,系统提供了很多公式,可以方便快速 对会员分组,比如: 20岁以上50以下会员 积分大于1000的会员 今天过生日的会员 累计消费超过10000元的会员 余额超过5000元的会员 入会超过2年的老顾客 通过分组,可以实现复杂的收费规则,而实现起来却非常简单 会员卡支持磁卡、ID卡、IC卡、MF1卡(非接触IC卡)多种介质 目前支持深圳方卡M1读卡机,常州银联M

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧