Dies scheint für eine UNION-Ergebnismenge geeignet zu sein. Sie müssen also 2 Abfragen (eine für jedes "Kriterium") erhalten und ihr Ergebnis mit union verbinden.
Die erste Abfrage würde folgendermaßen aussehen:
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;
Jetzt brauchen Sie die Abfrage, die auswählt, ob die Größe zu groß ist:
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;
Als Nächstes möchten Sie sie in einer einzigen Abfrage kombinieren. Da beide die gleichen Felder haben, können Sie das Ergebnis einfach "vereinigen"
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:Sie hatten "ON f1.id>=f2.id" als Join-Kriterium, nicht sicher, warum das> sehr fallspezifisch wäre :)