gpt4 book ai didi

sql - 在 SQL Server 中,按从今天开始的 6 个月时间段对行进行分组

转载 作者:行者123 更新时间:2023-12-03 03:13:16 25 4
gpt4 key购买 nike

我正在尝试获取从今天起 6 个月组中带有时间戳的行数。例如,我想打印年份,然后打印一年中的哪一半,然后打印该组中包含的记录数。

我已经尝试过这个:

SELECT dateadd(month, datediff(month, 6, TimeStamp),0), DATEPART(Year, TimeStamp), count(*)
FROM Table
WHERE row1 = 'Blah'
GROUP BY dateadd(month, datediff(month, 6, TimeStamp),0), DATEPART(Year, TimeStamp)
ORDER BY dateadd(month, datediff(month, 6, TimeStamp),0), DATEPART(Year, TimeStamp)

但它没有给我预期的组。

最佳答案

您应该能够利用SQL Server整数除法来计算学期号。

SELECT YEAR(TimeStamp) year, 1 + MONTH(TimeStamp) / 7 semester, count(*)
FROM mytable
WHERE row1 = 'Blah'
GROUP BY YEAR(TimeStamp), 1 + MONTH(TimeStamp) / 7
ORDER BY year, semester

例如:

  • 从 1 月(1)到 6 月(6),整数除以 7 返回 0 :+ 1 成为第一学期
  • 从 7 月开始,该部门返回 1

关于sql - 在 SQL Server 中,按从今天开始的 6 个月时间段对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54639942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com