SQL中基于时间段的聚合函数(sum)

SQL中基于时间段的聚合函数(sum),sql,datetime,casting,aggregate,netezza,Sql,Datetime,Casting,Aggregate,Netezza,我试图使用特定的where条件将sum函数应用于列。该表包含一年的详细数据。我想使用where条件进行聚合,例如Datetime>06/11/2018 10:10:00和Datetime如何: select sum(PL) from my_table where DateTime between '2018-06-11 10:10:00' and '2018-06-12 10:10:00'; 像这样的 DECLARE @fromDt DATETIME = '06/11/2018 1

我试图使用特定的where条件将sum函数应用于列。该表包含一年的详细数据。我想使用where条件进行聚合,例如Datetime>06/11/2018 10:10:00和Datetime如何:

select sum(PL) 
  from my_table 
  where DateTime between '2018-06-11 10:10:00' and '2018-06-12 10:10:00';
像这样的

DECLARE @fromDt DATETIME = '06/11/2018 10:10:00';
DECLARE @toDt DATETIME = '06/12/2018 10:10:00';

SELECT SUM(IIF([Datetime] BETWEEN @fromDt AND @toDt, [PL], 0)) OVER() AS [Sum]
FROM [dbo].[MyTable]
WHERE ...

请显示您的查询。因此,在聚合查询中添加where子句。您是否有一个包含所有“间隔”的表,用于聚合“年值”数据?您是否希望在完全任意的范围内进行聚合,或者像你举的一个例子,你想在一天中的任意时间开始24小时窗口吗?谢谢!我会试试这是特定于sqlserver的SQL,它不适用于netezza或“postgres”家族中的任何或其他数据库。我有一年的数据,无法硬编码。谢谢,但是你有一个包含所有“间隔”的表格,你想为这些“间隔”汇总你的“年度价值”数据吗?
DECLARE @fromDt DATETIME = '06/11/2018 10:10:00';
DECLARE @toDt DATETIME = '06/12/2018 10:10:00';

SELECT SUM(IIF([Datetime] BETWEEN @fromDt AND @toDt, [PL], 0)) OVER() AS [Sum]
FROM [dbo].[MyTable]
WHERE ...