首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SQL-实现Monthly SumUp的统计

SQL-实现Monthly SumUp的统计

作者头像
szhshp
发布于 2022-09-21 09:45:26
发布于 2022-09-21 09:45:26
3490
举报

Step1: 首先得到每月的记录

代码语言:javascript
复制
	WITH TABLE monthlydata AS 
	( 
	         SELECT   sum(xxx) AS totalcases, 
	                  id, 
	                  month(date) AS [month] 
	         FROM     yourtable 
	         GROUP BY id, 
	                  month(date) 
	)

Step2: 然后进行 Sum up

对上方表进行操作:

  • 若部分 month 的没有产值而显示为 0 的话
    • 不需要额外操作
  • 若部分 month 的没有产值而显示为 NULL 的话
    • 进行一下判断将其变为 0
  • 若部分 month 的没有产值导致上方表结果中只有一年中部分月份的数据
    • 额外 JOIN 一张表变量,这张表有 12 行数据分别是 1-12
代码语言:javascript
复制
	declare @monthIndex as table 
	(
	    [month] INT
	)
	
	DECLARE @hid INT;
	SET @hid=1;
	WHILE @hid <= 12
	BEGIN 
	    INSERT INTO @monthIndex VALUES(@hid)
	    SET @hid = @hid + 1;
	END

然后进行判断

代码语言:javascript
复制
	select 
	    i.siteid,
	    mindex.month,
	    sum(totalcases ) as SumUpRecCases
	
	from MonthlyData, @monthIndex mindex
	where i.month <= mindex.month
	group by i.siteid, mindex.month

最终会显示多行

参考文献

generate-year-to-date-by-month-report-in-sql

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • Step1: 首先得到每月的记录
  • Step2: 然后进行 Sum up
  • 参考文献
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档