Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL थ्रेशोल्ड से अधिक राशि वाले रिकॉर्ड का चयन करता है

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में सोशल नेटवर्क सिस्टम के लिए डेटाबेस डिजाइन करने के लिए गाइड

  2. जावा और MySQL का उपयोग करके टेबल दिखाएं?

  3. मैसकल कनेक्टर/जे को DATE और TIME टाइमज़ोन को परिवर्तित करने से कैसे रोकें?

  4. एक MySQL क्वेरी में DISTINCT और COUNT का एक साथ उपयोग करना

  5. PHP को MySQL से कैसे कनेक्ट करें