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

Cách lọc bản ghi bằng hàm tổng hợp AVG

Vấn đề:

Bạn muốn tìm các nhóm hàng trong đó giá trị trung bình trong một cột cao hơn hoặc thấp hơn một giá trị nhất định.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng tên là product với dữ liệu trong các cột sau:id , name , groceryprice .

id tên hàng tạp hóa giá
1 sữa Cửa hàng xanh 2,34
2 bánh mì Cửa hàng tạp hóa của Clark 3,56
3 bánh mì Siêu thị 4,15
4 sữa Siêu thị 1,80
5 bánh mì Cửa hàng tạp hóa Amanda 2,26
6 sữa Violet Grocery 3,45
7 sữa Cửa hàng tạp hóa của Clark 2.10
8 bánh mì Violet Grocery 2,55
9 sữa Cửa hàng tạp hóa Amanda 1,95

Hãy tìm tên của các sản phẩm trong đó giá trung bình của mỗi sản phẩm giữa các cửa hàng tạp hóa cao hơn 3,00.

Giải pháp:

SELECT name, AVG(price)
FROM product
GROUP BY name
HAVING AVG(price)>3.00;

Đây là kết quả:

name trung bình
bánh mì 3,13

Thảo luận:

Để lọc các bản ghi bằng hàm tổng hợp, hãy sử dụng mệnh đề HAVING.

Ở đây chúng tôi tính giá trị tổng hợp:giá trung bình của mỗi sản phẩm. Một được bán bởi nhiều hơn một người bán tạp hóa; do đó giá trung bình được tính cho mỗi (trong ví dụ của chúng tôi là SELECT name, AVG(price) ). Bên cạnh hàm tổng hợp, chúng ta cũng sử dụng tên cột trong SELECT, vì vậy chúng ta nên sử dụng GROUP BY với tên cột này (GROUP BY name ).

Bước cuối cùng là sử dụng hàm tổng hợp trong mệnh đề HAVING. Hãy nhớ rằng HAVING nên được đặt sau mệnh đề GROUP BY. Nó chứa điều kiện so sánh giá trị được trả về bởi hàm tổng hợp với một giá trị nhất định. Ở trên, đó là giá trung bình của sản phẩm có giá trị 3,00 (HAVING AVG(price)>3.00 ). Trong truy vấn này, chúng tôi kiểm tra xem giá trung bình của mỗi sản phẩm trong tất cả các cửa hàng tạp hóa có cao hơn ba hay không. Truy vấn chỉ hiển thị một sản phẩm, bánh mì, với giá trung bình cao hơn ba.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối được nhóm:Sắp xếp và loại bỏ các bản sao

  2. Địa chỉ OGG-01224 đã được sử dụng

  3. Lưu trữ tệp trong cơ sở dữ liệu SQL bằng FILESTREAM - Phần 2

  4. Tác động hiệu suất của các kỹ thuật xử lý lỗi khác nhau

  5. Số lần xem và số liệu thống kê được lập chỉ mục