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

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

Vấn đề:

Bạn muốn tìm các nhóm hàng có số lượng mục nhập cụ thể trong một nhóm.

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 , namecategory .

id tên loại
1 ghế sofa đồ nội thất
2 găng tay quần áo
3 Áo phông quần áo
4 ghế đồ nội thất
5 bàn đồ nội thất
6 xem điện tử
7 ghế bành đồ nội thất
8 váy quần áo
9 máy thu thanh điện tử

Hãy tìm danh mục sản phẩm có nhiều hơn hai mục nhập.

Giải pháp:

SELECT category, COUNT(id)
FROM product
GROUP BY category
HAVING COUNT(id)>2;

Đây là kết quả:

loại số lượng
đồ nội thất 4
quần áo 3

Thảo luận:

Để lọc các bản ghi theo số hàng đã cho trong nhóm, hãy sử dụng mệnh đề HAVING. Nó lọc các hàng bằng cách sử dụng hàm tổng hợp điều kiện như COUNT. Đầu tiên, trong SELECT, sử dụng tên của một cột hoặc các cột để nhóm các hàng (đây là một danh mục trong ví dụ của chúng tôi), sau đó đặt hàm tổng hợp COUNT, hàm này tính số lượng bản ghi trong mỗi nhóm. Để đếm số hàng, hãy sử dụng cột id lưu trữ các giá trị duy nhất (trong ví dụ của chúng tôi, chúng tôi sử dụng COUNT(id) ). Tiếp theo, sử dụng mệnh đề GROUP BY để nhóm các bản ghi theo các cột (GROUP BY danh mục trên). Sau khi sử dụng GROUP BY để lọc các bản ghi có hàm tổng hợp như COUNT, hãy sử dụng mệnh đề HAVING. Nó luôn được sử dụng sau mệnh đề GROUP BY. Trong HAVING, chúng tôi sử dụng một điều kiện để so sánh một giá trị với một giá trị được trả về bởi hàm tổng hợp. Trong ví dụ này, chúng tôi so sánh xem COUNT (id) có trả về giá trị cao hơn hai hay không. Nếu đúng, danh mục sẽ được trả lại cùng với số lượng sản phẩm.


  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ách nhận tất cả các kết hợp có thể có của các hàng từ hai bảng trong SQL

  2. Ký hiệu mũi tên

  3. Các nhóm Facebook hàng đầu về Phân tích, Dữ liệu lớn, Khai thác dữ liệu, Hadoop, NoSQL, Khoa học dữ liệu

  4. Cách sử dụng mệnh đề HAVING trong SQL

  5. Phân trang bằng OFFSET / FETCH:Một cách tốt hơn