sql >> Database teknologi >  >> RDS >> Sqlserver

TSQL:Kan ikke udføre en samlet funktion AVG på COUNT(*) for at finde de travleste timer på dagen

Brug af indbygget visning:

SELECT DATEPART(hh, x.visitdate),
       AVG(x.num)
  FROM (SELECT t.visitdate,
               COUNT(*) 'num'
          FROM CUSTOMERLOG t
         WHERE t.visitdate BETWEEN 'Jan 1 2009' AND 'Aug 1 2009'
      GROUP BY t.visitdate) x
GROUP BY DATEPART(hh, x.visitdate)

Bruger CTE (SQL Server 2005+) tilsvarende:

WITH visits AS (
   SELECT t.visitdate,
          COUNT(*) 'num'
     FROM CUSTOMERLOG t
    WHERE t.visitdate BETWEEN 'Jan 1 2009' AND 'Aug 1 2009'
 GROUP BY t.visitdate)
   SELECT DATEPART(hh, x.visitdate),
         AVG(x.num)
    FROM visits x
GROUP BY DATEPART(hh, x.visitdate)


  1. Få det aktuelle opdaterede kolonnenavn til brug i en trigger

  2. Betyder rækkefølgen af ​​tabeller, der henvises til i ON-klausulen i JOIN?

  3. Hvordan opdaterer man MYSQL-databasen med data fra Excel ved hjælp af ASP.NET?

  4. Hvordan kan jeg tvinge en underforespørgsel til at fungere så godt som en #temp-tabel?