Sql 按日期分组按月份、年份的范围
我这里有一个样品。我以前问过哪个有效,但当我进一步测试它时,我忘记了一个事实,那就是我还应该为它计算Sql 按日期分组按月份、年份的范围,sql,sql-server,tsql,Sql,Sql Server,Tsql,我这里有一个样品。我以前问过哪个有效,但当我进一步测试它时,我忘记了一个事实,那就是我还应该为它计算年份 简而言之,我想按月份范围对记录进行分组八月至一月(第1组)和二月至七月(第2组)。因为我想计算每6个月创建多少个学校对象。持续的趋势是具体的 结果集,例如: +-----------+-------+---------------+ | sc_object | count | range | +-----------+-------+---------------+ | pe
年份
简而言之,我想按月份范围对记录进行分组<代码>八月
至一月(第1组)和二月至七月(第2组)。因为我想计算每6个月创建多少个学校对象。持续的趋势是具体的
结果集,例如:
+-----------+-------+---------------+
| sc_object | count | range |
+-----------+-------+---------------+
| pencil | 1 | 2013-8 2014-1 |
| eraser | 1 | 2014-2 2014-7 |
| pencil | 1 | 2014-2 2014-7 |
| sharpener | 1 | 2014-2 2014-7 |
| pencil | 1 | 2014-8 2015-1 |
| eraser | 1 | 2015-2 2015-7 |
| pencil | 1 | 2015-2 2015-7 |
| sharpener | 1 | 2015-2 2015-7 |
| eraser | 1 | 2015-8 2016-1 |
| sharpener | 2 | 2016-2 2016-7 |
| pencil | 1 | 2016-2 2016-7 |
| sharpener | 1 | 2016-8 2017-1 |
| eraser | 1 | 2016-8 2017-1 |
+-----------+-------+---------------+
任何帮助都将不胜感激。非常感谢你 您可以这样做():
您可以根据月份和年份计算范围,然后汇总结果。您可以这样做():
您可以根据月份和年份计算范围,然后汇总结果。您可以这样做():
您可以根据月份和年份计算范围,然后汇总结果。您可以这样做():
您根据月份和年份计算范围,然后汇总结果。@BoyPasmo:不客气。你被否决了,因为你没有提供任何代码,但我查看了你的个人资料,发现SQL并不是你真正喜欢的东西。不用担心,请提前付款知道了!当然可以:D@BoyPasmo:不客气。你被否决了,因为你没有提供任何代码,但我查看了你的个人资料,发现SQL并不是你真正喜欢的东西。不用担心,请提前付款知道了!当然可以:D@BoyPasmo:不客气。你被否决了,因为你没有提供任何代码,但我查看了你的个人资料,发现SQL并不是你真正喜欢的东西。不用担心,请提前付款知道了!当然可以:D@BoyPasmo:不客气。你被否决了,因为你没有提供任何代码,但我查看了你的个人资料,发现SQL并不是你真正喜欢的东西。不用担心,请提前付款知道了!当然可以:D
WITH cteRanges
AS
(
SELECT
site,
CASE
WHEN MONTH(date) IN (1) THEN CAST(YEAR(date) - 1 AS VARCHAR(4)) + '-8' + ' ' + CAST(YEAR(date) AS VARCHAR(4)) + '-1'
WHEN MONTH(date) IN (8, 9, 10, 11, 12) THEN CAST(YEAR(date) AS VARCHAR(4)) + '-8' + ' ' + CAST(YEAR(date) + 1 AS VARCHAR(4)) + '-1'
ELSE CAST(YEAR(date) AS VARCHAR(4)) + '-2' + ' ' + CAST(YEAR(date) AS VARCHAR(4)) + '-7'
END AS range
FROM
test
)
SELECT
site,
COUNT(*),
range
FROM
cteRanges
GROUP BY
site,
range
ORDER BY
range,
site;