天天看点

SQL Server中按照时间进行分组统计

一个群里的哥们提的这样的需求,很简单,就是分组统计问题。

一张表 tb_Visit

Guid    VisitDate   VisitCount

编号     访问时间     访问次数

要求是能根据年月及年份进行访问次数统计,并能够根据访问次数进行排序,形式如  年-月   访问次数/  年   访问次数

后来给他写的SQL语句如下:

1、按年月统计

select  CONVERT(varchar(7),[VisitDate],120) as 时间,SUM(VisitCount) as 访问次数

from  tb_Visit

group by  CONVERT(varchar(7),[VisitDate],120) order by 访问次数 desc;

2、按年统计

group by  CONVERT(varchar(4),[VisitDate],120) order by 访问次数 desc;

总结:convert函数的第三个参数120的意思是时间格式遵循: yyyy-MM-dd hh:MM:ss格式,所有第一个参数varchar(n)中的n长度就决定是取几位数。

7: yyyy-MM(年-月)

4:yyyy(年)