时间:2021-05-23
设置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 '
查询结果如下图:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
mysql获取groupby内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数。mysql的SQL_CALC_FOUND_ROWS使用获取查询的行
本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码:实现效果在SQL中我们可以使用groupby来进行分组统计,
开发中遇到过问题就是对时间以半个小时分钟分组,如统计08:00-08:30的人数,08:30-09:00的人数,貌似sql中没有这样的函数吧,直接从数据库里查出
在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次
光年关键词分组工具是一款关键词切分,分组软件,将百度关键词工具导出的数据批量导入分组工具中,自动整合按流量排序并输出统计结果。软件名称:光年关键词排名查询系统v