Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL pilih catatan dengan jumlah lebih besar dari ambang batas

Ini tampaknya cocok untuk hasil UNION. Jadi, Anda harus mendapatkan 2 kueri (satu untuk setiap "kriteria") dan menggabungkan hasilnya menggunakan gabungan.

Kueri pertama akan menjadi:

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;

Sekarang Anda memerlukan kueri yang memilih apakah ukurannya terlalu besar:

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;

Selanjutnya Anda ingin menggabungkannya dalam satu kueri. Karena keduanya memiliki bidang yang sama, Anda cukup "menyatukan" hasilnya

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;

PS:Anda memiliki "ON f1.id>=f2.id" sebagai kriteria bergabung, tidak yakin mengapa> itu akan sangat spesifik :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InnoDB SELECT ... FOR UPDATE pernyataan mengunci semua baris dalam tabel

  2. UNTUK PEMBARUAN v/s LOCK IN SHARE MODE :Izinkan utas bersamaan untuk membaca nilai status terbaru dari baris terkunci

  3. MySQL atau PHP Ubah baris menjadi kolom

  4. Kesalahan dengan prosedur mysql ERROR 1304 &ERROR 1305

  5. Membuat banyak halaman dari kueri sql