`
FirstBlood
  • 浏览: 160546 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

SQL 按 时间段 进行分组统计

阅读更多
[code=SQL]
一个按五分钟分段统计的例

create table tb(时间 datetime , 金额 int)
insert into tb values('2007-1-1 10:00:23' ,          8 )
insert into tb values('2007-1-1 10:01:24' ,          4 )
insert into tb values('2007-1-1 10:05:00' ,          2 )  
insert into tb values('2007-1-1 10:06:12' ,          3 )
insert into tb values('2007-1-1 10:08:00' ,          1 )
insert into tb values('2007-1-1 10:12:11' ,          5 )
go

--时间段>=10:00:00 and 时间段<10:05:00
select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,时间),120),dateadd(ss,-1,时间))/5)*5,convert(varchar(10),时间,120)) as 时间段,
       count(*) as 行数,
       sum(金额) as 总金额
from tb
group by dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,时间),120),dateadd(ss,-1,时间))/5)*5,convert(varchar(10),时间,120))
/*
时间段                                                    行数          总金额         
------------------------------------------------------ ----------- ----------- 
2007-01-01 10:00:00.000                                3           14
2007-01-01 10:05:00.000                                2           4
2007-01-01 10:10:00.000                                1           5
(所影响的行数为 3 行)
*/

--时间段>10:00:00 and 时间段<=10:05:00
select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,1,时间),120),dateadd(ss,1,时间))/5)*5,convert(varchar(10),时间,120)) as 时间段,
       count(*) as 行数,
       sum(金额) as 总金额
from tb
group by dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,1,时间),120),dateadd(ss,1,时间))/5)*5,convert(varchar(10),时间,120))
/*
时间段                                                    行数          总金额         
------------------------------------------------------ ----------- ----------- 
2007-01-01 10:00:00.000                                2           12
2007-01-01 10:05:00.000                                3           6
2007-01-01 10:10:00.000                                1           5

(所影响的行数为 3 行)
*/

drop table tb


转载http://bbs.csdn.net/topics/360003771
分享到:
评论

相关推荐

    Oracle数据库按时间进行分组统计数据的方法

    Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14-2月 -08 20 10-3月 -08 2 14-4月 -08 6 14-6月 -08 75 24-10月-09 23 14-11月-09 45 04-8月 -10 5 ...

    group by 按某一时间段分组统计并查询(推荐)

    工作中要求对日志表中的时间戳字段进行分组。分组的条件是,相隔 1分钟间隔的被分到一组。 数据库表是这样的 SELECT COUNT(log_id) AS u_count FROM logdb.`log` GROUP BY TIMESTAMP-TIMESTAMP%(1*60) 其中...

    sqlserver/mysql按天、按小时、按分钟统计连续时间段数据【推荐】

    最近小编接到这样的需求,公司需要按天,按小时查看数据,可以直观的看到时间段的数据峰值。这篇文章主要介绍了sqlserver/mysql按天,按小时,按分钟统计连续时间段数据 ,需要的朋友可以参考下

    经典SQL脚本大全

    │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理...

    Sqlserver2000经典脚本

    6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列...

    mysql 统计一天24小时数据默认补0SQL

    利用mysql的函数实现统计查询一天24小时的数据,然后统计时间没有的数据默认补上了零。

    SQL语句集锦.rar

    多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt 嵌套游标的使用.txt 拷贝表格.txt 排序.txt 断开并更改数据库名称.txt 新建 文本文档 (6).txt 新建 文本文档.txt 有关NULL.txt ...

    SQL查询技巧(范例宝典)

     实例314 查询指定时间段的数据 457  实例315 按月查询数据 458  10.7 比较、逻辑、重复查询 460  实例316 查询数据大于指定条件的数据 460  实例317 NOT与谓词进行组合条件的查询 461  实例...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    11.1 在SQL Server中进行分区 11.1.1 分区视图 11.1.2 分区表 11.2 总结 第12章 图、树、层次结构和递归查询 12.1 术语 12.1.1 图 12.1.2 树 12.1.3 层次结构 12.2 应用场景 12.2.1 员工组织图 12.2.2 ...

    Django中日期时间型字段进行年月日时分秒分组统计

    如需要统计2020年10月29日 每个小时段产生数据的条数。 要进行这种统计需要用到 Django的connection库。 统计年月日粒子用 date_trunc_sql,统计时分秒用 datetime_extract_sql 2.进行年月日粒子的统计  2.1 官方 ...

    SQL性能优化

    一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。  NOT IN  此操作是强列推荐不使用的,因为不能应用表的索引。  推荐方案:用NOT EXISTS 或(Outer-Join+判断为空)方案代替 例如: ...

    如何统计全天各个时间段产品销量情况(sqlserver)

    数据库环境:SQL SERVER 2005 现有一个产品销售实时表,表数据如下: ...spt_values来实现,进行行转列时,根据type和处理后的ctime分组即可。 1.建表,导入数据 CREATE TABLE snake (name VARCHAR(10 ),type

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    SQL培训第一期

    1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    6.2.3 收集执行计划统计信息 151 6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 161 6.3 小结 169 第7章 高级分组 170 7.1 基本的GROUP BY用法 ...

    Visual C++程序开发范例宝典 - 第9章

    实例297 查询指定时间段的数据 实例298 按月查询数据 实例299 在查询中使用日期函数 9.3 比较、逻辑、重复记录查询 实例300 NOT与谓词进行组合条件的查询 实例301 查询时不显示重复记录 9.4 排序、分组统计 实例302 ...

    C#程序开发范例宝典(第2版).part13

    实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 2.12 特殊控件 144 实例101 为控件制作立体效果 144 实例102 ...

Global site tag (gtag.js) - Google Analytics