Това изглежда е подходящо за набор от резултати на UNION. Така че трябва да получите 2 заявки (по една за всеки „критерий“) и да присъедините техния резултат с помощта на union.
Първата заявка ще бъде:
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;
Сега имате нужда от заявката, която избира, ако размерът е твърде голям:
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;
След това искате да ги комбинирате в една заявка. Тъй като и двете имат едни и същи полета, можете просто да „обедините“ резултата
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:Имахте "ON f1.id>=f2.id" като критерии за присъединяване, не съм сигурен защо> това би било много специфично за случая :)