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

Làm cách nào để chỉ chọn các bản ghi được nhóm lại nếu mọi bản ghi trong một nhóm đáp ứng một tiêu chí nhất định trong MySQL?

Tôi đề xuất truy vấn sau:

SELECT COUNT(a.id) AS total_records, a.disregard_inventory, a.qty
    FROM artikelstammdaten a
    ...
GROUP BY a.style
HAVING (SUM(a.qty) != 0 OR (a.disregard_inventory = 1))
       AND (SUM(qty>0) = total_records)

Điều kiện cuối cùng mà tôi đã thêm vào truy vấn chỉ cho phép trả về một kiểu nếu số lượng kích thước cho sản phẩm này (total_records ) bằng với số lượng kích thước có sẵn cho sản phẩm này (SUM(qty>0) ).
qty>0 sẽ trả về 0 (khi sản phẩm không có sẵn với kích thước đã cho hoặc 1 (khi sản phẩm có sẵn). Vì vậy, SUM(qty>0) sẽ trả về một số nguyên từ 0 đến tổng số kích thước.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql + cập nhật top n

  2. Cách xóa giá trị trùng lặp được phân tách bằng dấu phẩy trong một cột trong MySQL

  3. Cách tốt nhất để lưu trữ Cài đặt của ứng dụng PHP?

  4. Regex - tìm số cụ thể trong chuỗi

  5. MySQL> Bảng không tồn tại. Nhưng nó có (hoặc nó phải)