sql >> Databasteknik >  >> RDS >> Sqlserver

TSQL:Kan inte utföra en aggregerad funktion AVG på COUNT(*) för att hitta de mest trafikerade timmarna på dygnet

Använda inline-vy:

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)

Använder CTE (SQL Server 2005+) motsvarande:

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. tecken 0xc286 i UTF-8-kodning har ingen motsvarighet i WIN1252....Vid konvertering med iconv kraschar postgres restore

  2. Fast Anrop till odefinierad funktion oci_connect() med XAMPP

  3. Lagra HTML i MySQL:blob eller text?

  4. Hur man gör en CONTAINS() på två kolumner av Full Text Index Search SQL