gpt4 book ai didi

SQL Group 按不同的时间段和天

转载 作者:行者123 更新时间:2023-12-04 18:53:04 25 4
gpt4 key购买 nike

我需要查询销售表并让结果表显示给定日期内不同时间段的分割。

例如,该表具有以下字段:

Id (int), EntryDate (datetime), SaleReference (varchar)

我想制作一个看起来像这样的表格:

日期 销售 9am-12pm 销售 12pm-3pm 销售 6pm-9pm
---------- -------------- -------------- ------------ ——
01-01-2010 10 20 6
02-01-2010 12 16 3
03-01-2010 43 11 2

对此的任何帮助将不胜感激。
谢谢

最佳答案

下面假设SQL Server。如果不是,类似的逻辑可能适用于您的 RDBMS,但可能会使用不同的函数从日期时间获取小时部分,并且 BETWEEN 的行为也可能不同(在 SQL Server 中,它是一个包含范围)。

SELECT CAST([Date] AS Date) AS [Date],
COUNT(CASE WHEN DATEPART(hour, [Date]) BETWEEN 9 AND 11 THEN 1 ELSE NULL END)
AS [Sales 9am-12pm],
COUNT(CASE WHEN DATEPART(hour, [Date]) BETWEEN 12 AND 14 THEN 1 ELSE NULL END)
AS [Sales 12pm-3pm],
COUNT(CASE WHEN DATEPART(hour, [Date]) BETWEEN 18 AND 20 THEN 1 ELSE NULL END)
AS [Sales 6pm-9pm]
FROM Table
GROUP BY CAST([Date] AS Date) /*For SQL2008*/

注意:以前版本的 SQL Server 需要更多的时间才能从日期时间中获取日期部分。例如 CAST(FLOOR( CAST( GETDATE() AS FLOAT ) ) AS DATETIME (来自 here)

关于SQL Group 按不同的时间段和天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3265995/

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