ऐसा लगता है कि यह यूनियन परिणामसेट के लिए उपयुक्त है। तो आपको 2 प्रश्न (प्रत्येक "मानदंड" के लिए एक) प्राप्त करना होगा और संघ का उपयोग करके उनके परिणाम में शामिल होना होगा।
पहली क्वेरी बन जाएगी:
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;
पुनश्च:आपके पास "ON f1.id>=f2.id" शामिल मानदंड के रूप में था, निश्चित नहीं कि> यह बहुत ही केस-विशिष्ट क्यों होगा :)