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 :)