--创建表
CREATE TABLE Orders(
Id int not null identity(1,1) primary key ,
Num int,
CreationTime datetime
) --插入数据
INSERT INTO Orders(Num,CreationTime)
SELECT 98,'2021-04-21 09:24:23' UNION ALL
SELECT 82,'2021-04-24 12:20:50' UNION ALL
SELECT 91,'2021-04-28 11:36:29' UNION ALL
SELECT 98,'2021-05-01 10:31:14' UNION ALL
SELECT 84,'2021-05-02 11:42:41' UNION ALL
SELECT 76,'2021-05-05 14:11:26' UNION ALL
SELECT 62,'2021-05-08 15:16:34' UNION ALL
SELECT 53,'2021-05-08 16:38:50' UNION ALL
SELECT 32,'2021-05-10 15:16:34' UNION ALL
SELECT 48,'2021-05-11 16:38:50' UNION ALL
SELECT 39,'2021-05-12 15:25:11' --按日统计
SELECT Convert(varchar(10),CreationTime,23) 日期, count(1) 销售次数, sum(Num) 销售量
FROM Orders
GROUP BY Convert(varchar(10), CreationTime, 23) --按日统计 out
日期          销售次数    销售量
2021-04-21  1   98
2021-04-24  1   82
2021-04-28  1   91
2021-05-01  1   98
2021-05-02  1   84
2021-05-05  1   76
2021-05-08  2   115
2021-05-10  1   32
2021-05-11  1   48
2021-05-12  1   39--按周统计 (年度周次)
SELECT datepart(week, CreationTime) 周次, count(1) 销售次数, sum(Num) 销售量
FROM Orders
WHERE year(CreationTime)=year(getdate())
GROUP BY datepart(week, CreationTime) --按周统计 (年度周次) out
周次  销售次数    销售量
17  2   180
18  2   189
19  4   275
20  3   119--按周统计 (月份周次)
SELECT weekName 周次,count(1) 销售次数, sum(Num) 销售量 from (
SELECT cast(datepart(month,CreationTime) as varchar(2)) + '月第'+ cast((datepart(week,CreationTime) - datepart(week,convert(varchar(7),CreationTime,120) + '-01') + 1) as varchar(2)) + '周'  weekName,Num
FROM Orders
WHERE year(CreationTime)=year(getdate())
)tb
GROUP BY weekName --可以创建函数来获取周次
CREATE FUNCTION fn_getweek
(@date datetime
)
RETURNS nvarchar(50)
AS
BEGINDECLARE @result nvarchar(50)select @result=cast(datepart(mm,@date) as varchar(2)) + '月第' + cast((datepart(wk,@date) - datepart(wk,convert(varchar(7),@date,120) + '-01') + 1) as varchar(2)) + '周';-- Return the result of the functionRETURN @result
END
GO
SELECT weekName 周次,count(1) 销售次数, sum(Num) 销售量 from (
SELECT dbo.fn_getweek(CreationTime) weekName,Num
FROM Orders
WHERE year(CreationTime)=year(getdate())
)tb
GROUP BY weekName --按周统计 (月份周次) out
周次  销售次数    销售量
4月第4周   2   180
4月第5周   1   91
5月第1周   1   98
5月第2周   4   275
5月第3周   3   119--按月统计
SELECT convert(char(7), CreationTime, 120) 月份,count(1) 销售次数, 销售量=sum(Num)
FROM Orders
GROUP BY convert(char(7), CreationTime, 120) --按月统计 out
月份  销售次数    销售量
2021-04 3   271
2021-05 8   492--按季统计
SELECT datepart(quarter, CreationTime) 季次, count(1) 销售次数, sum(Num) 销售量
FROM Orders
WHERE year(CreationTime)=year(getdate())
GROUP BY datepart(quarter, CreationTime) --按季统计 out
季次  销售次数    销售量
2   11  763--按年统计
SELECT year(CreationTime) 年次, count(1) 销售次数, sum(Num) 销售量
FROM Orders
GROUP BY year(CreationTime)--按年统计  out
年次  销售次数    销售量
2021    11  763--今天的所有数据:SELECT * FROM Orders where DATEDIFF(dd,CreationTime,GETDATE())=0--昨天的所有数据:SELECT * FROM Orders  where DATEDIFF(dd,CreationTime,GETDATE())=1--7天内的所有数据:SELECT * FROM Orders  where DATEDIFF(dd,CreationTime,GETDATE())<=7--30天内的所有数据:SELECT * FROM Orders  where DATEDIFF(dd,CreationTime,GETDATE())<=30--本月的所有数据:SELECT * FROM Orders  where DATEDIFF(mm,CreationTime,GETDATE())=0--本年的所有数据:SELECT * FROM Orders  where DATEDIFF(yy,CreationTime,GETDATE())=0

来源:SqlServer 按日、周、月、季、年统计SQL语句-武穆逸仙

SqlServer 按日、周、月、季、年统计SQL语句相关推荐

  1. 日 周 月 季度 年 统计

    // 总量$total = Db::name("total")->count();// 周访问量$week = Db::name("total")-> ...

  2. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  3. mysql分季度统计数据,mysql按日周月季度统计数据

    mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...

  4. Oracle按日周月分组统计,及next_day()函数详解

    1.概述 工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月. 日月比较容易处理,周的话可以通过next_day()函数实现. 2.实例问题 如下,有一张表ljb_test,包括 ...

  5. mysql查询最近一个自然周_自然周与自然月的Hive统计SQL

    按照周或者月统计活跃数: 周: SELECT week, COUNT(DISTINCT pin), business_type FROM ( SELECT DISTINCT user_log_acct ...

  6. 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解

    HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID. 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的 ...

  7. oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解

    1.概述 工作中遇到如下問題:統計周期內關鍵詞數,而這里的周期內最常用的就是日周月. 日月比較容易處理,周的話可以通過next_day()函數實現. 2.實例問題 如下,有一張表ljb_test,包括 ...

  8. MACD多周期共振指标公式,日周月共振

    有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题.日线.周线.月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来. 一 ...

  9. php文章周月总排行榜怎么实现,帝国cms7.0实现日 周 月点击排行的方法

    本文将为您介绍的是帝国cms7.0实现日 周 月点击排行的方法,具体操作方法请看下文: 新增信息的排行不太符合我的要求.就自己琢磨了一套全站信息的月点击.周点击排行.需要新增几个字段及修改文件.下面开 ...

最新文章

  1. springMVC转发与重定向
  2. PAT条条大路通罗马
  3. excel xml mysql_数据库表转换为xml格式,excel转换为xml格式文件
  4. js 格式化 java时间格式化_javascript时间格式化
  5. Excel中vlookup函数的使用方法
  6. 关于WM_NCHITTEST消息
  7. CFile、CStdioFile、FILE和其他文件操作(转)
  8. Dapr 已在塔架就位 将发射新一代微服务
  9. MFC学习之路之多媒体 --(1) DirectShow
  10. codeforces 263A-C语言解题报告
  11. [模拟] hdu 4452 Running Rabbits
  12. 吴颖二:12.27 什么是现货,如何操作才能盈利
  13. 15.1 异常(异常的基本概念+自定义异常)
  14. 欧拉计划第80题:平方根数字展开
  15. 计算机系统启动项设置密码,电脑开机第一道密码怎么设置 - 卡饭网
  16. 计算机网络运行管理,计算机网络管理规定
  17. 【数据库】数据库入门(二): 关系型数据库
  18. C语言之:数组的定义和初始化必备练习题
  19. 怎么把ofd转换成PDF文件?分享给你个好用的方法。
  20. 如何快速且不失真剪切与合并视频?如何将视频快速转成MP4格式?无需渲染!视频秒转MP4,剪辑合并!

热门文章

  1. linux下无线网卡安装debian,Debian下安装无线网卡的驱动
  2. swift 解决SDWebImage同时加载大量高分辨率图片导致的内存爆炸问题
  3. 循环播放背景音乐 html,js背景音乐循环播放代码(多浏览器支持)
  4. BeanFactory源码体系解析--AutowireCapableBeanFactory二
  5. 解决jquery版本过低引发的XSS跨站安全漏洞
  6. ArcGIS 9.3 下载
  7. 自动视觉锁螺丝机及其控制系统
  8. 常用端口3000,80被占用问题解决
  9. python调用海康威视的摄像头,实时显示监控内容
  10. 2021-12-01 股票模拟交易心得2