SqlServer 按日、周、月、季、年统计SQL语句
--创建表
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语句相关推荐
- 日 周 月 季度 年 统计
// 总量$total = Db::name("total")->count();// 周访问量$week = Db::name("total")-> ...
- java8 日期范围内 日/周/月/季度/年 的日期结果集
java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...
- mysql分季度统计数据,mysql按日周月季度统计数据
mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...
- Oracle按日周月分组统计,及next_day()函数详解
1.概述 工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月. 日月比较容易处理,周的话可以通过next_day()函数实现. 2.实例问题 如下,有一张表ljb_test,包括 ...
- mysql查询最近一个自然周_自然周与自然月的Hive统计SQL
按照周或者月统计活跃数: 周: SELECT week, COUNT(DISTINCT pin), business_type FROM ( SELECT DISTINCT user_log_acct ...
- 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解
HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID. 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的 ...
- oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解
1.概述 工作中遇到如下問題:統計周期內關鍵詞數,而這里的周期內最常用的就是日周月. 日月比較容易處理,周的話可以通過next_day()函數實現. 2.實例問題 如下,有一張表ljb_test,包括 ...
- MACD多周期共振指标公式,日周月共振
有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题.日线.周线.月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来. 一 ...
- php文章周月总排行榜怎么实现,帝国cms7.0实现日 周 月点击排行的方法
本文将为您介绍的是帝国cms7.0实现日 周 月点击排行的方法,具体操作方法请看下文: 新增信息的排行不太符合我的要求.就自己琢磨了一套全站信息的月点击.周点击排行.需要新增几个字段及修改文件.下面开 ...
最新文章
- springMVC转发与重定向
- PAT条条大路通罗马
- excel xml mysql_数据库表转换为xml格式,excel转换为xml格式文件
- js 格式化 java时间格式化_javascript时间格式化
- Excel中vlookup函数的使用方法
- 关于WM_NCHITTEST消息
- CFile、CStdioFile、FILE和其他文件操作(转)
- Dapr 已在塔架就位 将发射新一代微服务
- MFC学习之路之多媒体 --(1) DirectShow
- codeforces 263A-C语言解题报告
- [模拟] hdu 4452 Running Rabbits
- 吴颖二:12.27 什么是现货,如何操作才能盈利
- 15.1 异常(异常的基本概念+自定义异常)
- 欧拉计划第80题:平方根数字展开
- 计算机系统启动项设置密码,电脑开机第一道密码怎么设置 - 卡饭网
- 计算机网络运行管理,计算机网络管理规定
- 【数据库】数据库入门(二): 关系型数据库
- C语言之:数组的定义和初始化必备练习题
- 怎么把ofd转换成PDF文件?分享给你个好用的方法。
- 如何快速且不失真剪切与合并视频?如何将视频快速转成MP4格式?无需渲染!视频秒转MP4,剪辑合并!
热门文章
- linux下无线网卡安装debian,Debian下安装无线网卡的驱动
- swift 解决SDWebImage同时加载大量高分辨率图片导致的内存爆炸问题
- 循环播放背景音乐 html,js背景音乐循环播放代码(多浏览器支持)
- BeanFactory源码体系解析--AutowireCapableBeanFactory二
- 解决jquery版本过低引发的XSS跨站安全漏洞
- ArcGIS 9.3 下载
- 自动视觉锁螺丝机及其控制系统
- 常用端口3000,80被占用问题解决
- python调用海康威视的摄像头,实时显示监控内容
- 2021-12-01 股票模拟交易心得2