sql >> Database >  >> Database Tools >> SSMS

SQL Query Vergelijk waarden in per 15 minuten en geef het resultaat per uur weer

Hieronder vindt u de query die u nodig hebt en een werkende oplossing Opmerking:ik heb het tijdsbestek gewijzigd in 24 uur

       ;with SourceData(HourTime, Value, RowNum)
  as
  (
    select 
      datepart(hh, UTCTime) HourTime, 
      Value, 
      row_number() over (partition by datepart(hh, UTCTime) order by UTCTime) RowNum
    from foo
    union 
    select 
        datepart(hh, UTCTime) - 1 HourTime, 
        Value,
        5
    from foo
    where datepart(mi, UTCTime) = 0
  )
  select cast(A.HourTime as varchar) + ':00' UTCTime, sum(case when A.Value = B.Value then 1 else 0 end) ConstantValues
  from SourceData A
   inner join SourceData B on A.HourTime = B.HourTime and
                           (B.RowNum = (A.RowNum - 1))
  group by cast(A.HourTime as varchar) + ':00'


  1. Microsoft SQL Service Management Studio 2005 'Script XXX als CREATE To'-probleem

  2. JSON-tabel maken op basis van SQL-query

  3. C#-handle op SQL Server-berichtuitvoer

  4. Een veld instellen als Niet NULL in phpmyadmin