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

SQL Server:cách tính giá trị trung bình (nhóm theo)?

Bạn cần thay đổi mã của mình để sử dụng các số thập phân như sau

 SELECT
   dst,
   AVG(sp)
FROM
(
   SELECT
      dst,
      cast(sp as decimal(5,2)) sp,
      ROW_NUMBER() OVER (
         PARTITION BY dst 
         ORDER BY sp ASC, id ASC) AS RowAsc,
      ROW_NUMBER() OVER (
         PARTITION BY dst 
         ORDER BY sp DESC, id DESC) AS RowDesc
   FROM dbo.cars SOH
) x
WHERE 
   RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1)
GROUP BY dst
ORDER BY dst;

Hiện tại, lệnh AVG được thực hiện trên một int, do đó kết quả là một int



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật đối chiếu của tất cả các trường trong cơ sở dữ liệu một cách nhanh chóng

  2. Nhận bản ghi 10 phút trước ngày giờ hệ thống trong SQL

  3. Làm thế nào để chuyển các tham số có giá trị bảng (tham số giống mảng) vào thủ tục được lưu trữ trong Microsoft SQL Server 2008 R2 bằng JDBC?

  4. Thiết lập Liquibase với MS-SQL Server

  5. Tạo trình kích hoạt DML trong SQL Server