Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

TSQL:Không thể thực hiện hàm tổng hợp AVG trên COUNT (*) để tìm giờ bận rộn nhất trong ngày

Sử dụng chế độ xem nội tuyến:

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)

Sử dụng CTE (SQL Server 2005+) tương đương:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với cơ sở dữ liệu SQL Server trong Visual Studio vì cơ sở dữ liệu của tôi không có ở đó

  2. Sử dụng bảng tạm trong câu lệnh IF .. ELSE

  3. SQL:Kiểm tra trả về các bản ghi cho từng cột

  4. CHỌN và CẬP NHẬT bảng để không có sự chồng chéo của Chủ đề

  5. Cần Truy vấn T-SQL tìm tất cả các cách có thể