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

MySQL chọn các bản ghi có tổng lớn hơn ngưỡng

Điều này dường như được trang bị cho bộ kết quả UNION. Vì vậy, bạn phải nhận 2 truy vấn (một cho mỗi "tiêu chí") và kết hợp kết quả của chúng bằng cách sử dụng union.

Truy vấn đầu tiên sẽ trở thành:

SELECT f1.user_id, f1.id AS file_id, SUM(f1.fileSize) AS totalSum
FROM files AS f1 
WHERE f1.user_id = 1
GROUP BY f1.id 
HAVING totalSum <= 350000;

Bây giờ bạn cần truy vấn chọn nếu kích thước quá lớn:

SELECT f1.user_id, f1.id AS file_id, MAX(f1.fileSize) AS max
FROM files AS f1 
WHERE f1.user_id = 1
GROUP BY f1.id 
HAVING max >= 350000;

Tiếp theo, bạn muốn kết hợp chúng trong một truy vấn duy nhất. Vì cả hai đều có cùng trường nên bạn có thể chỉ cần "kết hợp" kết quả

SELECT f1.user_id, f1.id AS file_id, SUM(f1.fileSize) AS totalSum
FROM files AS f1 
WHERE f1.user_id = 1
GROUP BY f1.id 
HAVING totalSum <= 350000
UNION
SELECT f1.user_id, f1.id AS file_id, MAX(f1.fileSize) AS max
FROM files AS f1 
WHERE f1.user_id = 1
GROUP BY f1.id 
HAVING max >= 350000;

Tái bút:Bạn có "ON f1.id> =f2.id" làm tiêu chí tham gia, không chắc tại sao> cái đó sẽ rất cụ thể :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để đặt một varchar có độ dài không giới hạn?

  2. làm thế nào để lấy dữ liệu mysql trong vb.net?

  3. Chuyển đổi từ mysqli_query sang câu lệnh chuẩn bị sẵn mysqli bằng cách sử dụng chức năng MẬT KHẨU MẬT KHẨU mysql

  4. Không tìm thấy trình điều khiển Jdbc

  5. lưu trữ nhiều giá trị hộp kiểm vào cơ sở dữ liệu bằng php và mysql