我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQLserver 中怎么实现分组统计查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQLserver 中怎么实现分组统计查询

SQLserver 中怎么实现分组统计查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

设置AccessCount字段可以根据需求在特定的时间范围内如果是相同IP访问就在AccessCount上累加。

 Create table Counter ( CounterID int identity(1,1) not null, IP varchar(20), AccessDateTime datetime, AccessCount int )

该表在这儿只是演示使用,所以只提供了最基本的字段 现在往表中插入几条记录 insert into Counter select '127.0.0.1',getdate(),1 union all select '127.0.0.2',getdate(),1 union all select '127.0.0.3',getdate(),1 1 根据年来查询,以月为时间单位 通常情况下一个简单的分组就能搞定复制代码 代码如下: select convert(varchar(7),AccessDateTime,120) as Date, sum(AccessCount) as [Count] from Counter group by convert(varchar(7),AccessDateTime,120)

像这样分组后没有记录的月份不会显示,如下: 这当然不是我们想要的,所以得换一种思路来实现,如下:复制代码 代码如下: declare @Year int set @Year=2009 select m as [Date], sum( case when datepart(month,AccessDateTime)=m then AccessCount else 0 end ) as [Count] from Counter c, ( select 1 m union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9 union all select 10 union all select 11 union all select 12 ) aa where @Year=year(AccessDateTime) group by m

2 根据天来查询,以小时为单位。这个和上面的类似,代码如下

 declare @DateTime datetime set @DateTime=getdate() select right(100+a,2)+ ':00 -> '+right(100+b,2)+ ':00 ' as DateSpan, sum( case when datepart(hour,AccessDateTime)> =a and datepart(hour,AccessDateTime) <b then AccessCount else 0 end ) as [Count] from Counter c , (select 0 a,1 b union all select 1,2 union all select 2,3 union all select 3,4 union all select 4,5 union all select 5,6 union all select 6,7 union all select 7,8 union all select 8,9 union all select 9,10 union all select 10,11 union all select 11,12 union all select 12,13 union all select 13,14 union all select 14,15 union all select 15,16 union all select 16,17 union all select 17,18 union all select 18,19 union all select 19,20 union all select 20,21 union all select 21,22 union all select 22,23 union all select 23,24 ) aa where datediff(day,@DateTime,AccessDateTime)=0 group by right(100+a,2)+ ':00 -> '+right(100+b,2)+ ':00 

关于SQLserver 中怎么实现分组统计查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQLserver 中怎么实现分组统计查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

分库数据怎么查询统计

本篇文章给大家分享的是有关分库数据怎么查询统计,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。分库后的计算不能直接使用SQL;异构库 SQL 函数不尽相同;JAVA 硬编码实施难
2023-06-03

SpringBoot中怎么实现分页查询

在Spring Boot中,可以使用Spring Data JPA来实现分页查询。具体步骤如下:在Repository接口中定义一个方法,使用Spring Data JPA提供的Page接口和Pageable接口来实现分页查询。例如:imp
SpringBoot中怎么实现分页查询
2024-03-08

PHP中怎么实现数组查询功能

PHP中怎么实现数组查询功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。学习PHP数组时,你可能会遇到问题,这里将介绍PHP数组查询,在这里拿出来和大家分享一下。PHP4
2023-06-17

在php数组中套查询怎么实现

本篇内容介绍了“在php数组中套查询怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是php数组中套查询php数组中套查询是指
2023-07-06

编程热搜

目录