如何计算每个月在指定时间间隔内的列总数?

时间:2019-09-11 08:41:56

标签: sql tsql

我必须每天在指定的时间间隔(20:30-22:00)中计算一列的总和,或者在一个月中该小时的平均值,您能帮我吗?谢谢。

通过此查询,我无法获得所需的总数。

Select COUNT (Qt_Tot_CallType)
from [Reporting].[dbo].[TLC_STAT_INBOUND_CC]
where (CONVERT(char(19), Dt_Rif, 20)BETWEEN '2019-01-01 20:30' AND '2019-01-31 22:00') AND (Cd_Servizio IN (71,72,73,75,76,77,78,79,80,81,82,83,84,85,87,88,90,91,96,97,98,99,100,101,109,110,111,112,116,133,139,140,142,144,152,153,154,156,157,159,160))
group by (Dt_Rif)

3 个答案:

答案 0 :(得分:0)

count COUNT(Qt_Tot_CallType)用于行号为Qt_Tot_CallType的数字或不为空的行

可能需要一笔款项

  Select Dt_Rif, SUM(Qt_Tot_CallType)
  from [Reporting].[dbo].[TLC_STAT_INBOUND_CC]
  where CONVERT(char(19), Dt_Rif, 20)
       BETWEEN '2019-01-01 20:30' AND '2019-01-31 22:00' 
  AND Cd_Servizio IN (71,72,73,75,76,77,78,79,80,81,82,83,84,85,87,88,90,91
      ,96,97,98,99,100,101,109,110,111,112,116
      ,133,139,140,142,144,152,153,154,156,157,159,160)
  group by (Dt_Rif)

答案 1 :(得分:0)

cast首先将您的datetime列作为时间

Select COUNT (Qt_Tot_CallType),  month(Dt_Rif)
from [Reporting].[dbo].[TLC_STAT_INBOUND_CC]
where cast(Dt_Rif as time) BETWEEN '20:30:00' and '22:00:00' AND (Cd_Servizio IN (71,72,73,75,76,77,78,79,80,81,82,83,84,85,87,88,90,91,96,97,98,99,100,101,109,110,111,112,116,133,139,140,142,144,152,153,154,156,157,159,160))
group by month(Dt_Rif)

答案 2 :(得分:0)

日期和时间范围最好与>=<相比。请确保分别比较它们,因为您不希望从'2019-01-01 20:30''2019-01-31 22:00'的范围,而希望从'2019-01-01''2019-01-31'的日期以及时间范围{{1} }至'20:30'

按日期分组(从日期时间中删除),以便每天获得一个结果行。总计使用'22:00',平均值使用SUM

AVG
相关问题