SQL-实现Monthly SumUp的统计
2016-03-12
WITH TABLE monthlydata AS
(
SELECT sum(xxx) AS totalcases,
id,
month(date) AS [month]
FROM yourtable
GROUP BY id,
month(date)
)

对上方表进行操作:
- 若部分 month 的没有产值而显示为 0 的话
- 不需要额外操作
- 若部分 month 的没有产值而显示为 NULL 的话
- 进行一下判断将其变为 0
- 若部分 month 的没有产值导致上方表结果中只有一年中部分月份的数据
- 额外 JOIN 一张表变量,这张表有 12 行数据分别是 1-12
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
然后进行判断
select
i.siteid,
mindex.month,
sum(totalcases ) as SumUpRecCases
from MonthlyData, @monthIndex mindex
where i.month <= mindex.month
group by i.siteid, mindex.month
最终会显示多行

关于本文
文章标题 | SQL-实现Monthly SumUp的统计 |
发布日期 | 2016-03-12 |
文章分类 | Tech |
相关标签 | #DB #SQL |
最近文章
留言板
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER