sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server gruppera efter antal datum och tid per timme?

Vad sägs om det här? Förutsatt att SQL Server 2008:

SELECT CAST(StartDate as date) AS ForDate,
       DATEPART(hour,StartDate) AS OnHour,
       COUNT(*) AS Totals
FROM #Events
GROUP BY CAST(StartDate as date),
       DATEPART(hour,StartDate)

För före 2008:

SELECT DATEADD(day,datediff(day,0,StartDate),0)   AS ForDate,
       DATEPART(hour,StartDate) AS OnHour,
       COUNT(*) AS Totals
FROM #Events
GROUP BY CAST(StartDate as date),
       DATEPART(hour,StartDate)

Detta resulterar i:

ForDate                 | OnHour | Totals
-----------------------------------------
2011-08-09 00:00:00.000     12       3


  1. Låsning och prestanda

  2. Sök i alla kolumner i en tabell med ett enda where-villkor med ett enda nyckelord i mysql

  3. ORA-00904:ogiltig identifierare

  4. Exempel på SQL Servers sys.dm_sql_referenced_entities() som returnerar en enhet som refererar till en länkad server