मेरे पास एक उत्पाद तालिका है जहां प्रत्येक उत्पाद का रंग होता है। मुझे प्रत्येक रंग के लिए न्यूनतम उत्पाद मूल्य वापस करने की आवश्यकता है।
SELECT MIN(price) FROM 'mytable' WHERE color="red"
लाल रंग के सभी उत्पादों के लिए न्यूनतम मूल्य लौटाएगा। और मुझे एक ही पंक्ति वापस मिल जाती है।
मुझे क्या करना है प्रत्येक विशिष्ट रंग के लिए न्यूनतम मूल्य के साथ कई पंक्तियों को वापस करना है।
लेकिन मुझे नहीं पता कि किसी खोज के परिणामों को "WHERE" में कैसे फीड किया जाए और कई पंक्तियाँ प्राप्त की जाएँ।
मैंने कोशिश की
SELECT MIN(price) FROM 'mytable' WHERE color=(SELECT DISTINCT color FROM 'mytable')
लेकिन मुझे त्रुटि मिलती है। मेरी सभी खोजें उप प्रश्नों को इंगित करती हैं, लेकिन मैं यह नहीं समझ सकता कि उप क्वेरी परिणामों को किसी क्वेरी में कैसे फ़ीड करें और एकाधिक पंक्तियों को वापस कैसे प्राप्त करें।
3 जवाब
आप GROUP BY
कार्यक्षमता का उपयोग कर सकते हैं:
SELECT color, MIN(price) FROM 'mytable' GROUP BY color;
यह आपको आपके डेटा में प्रत्येक रंग के लिए न्यूनतम मूल्य देगा।
क्या ये वही है जो तुम चाहते हो?
select t.*
from mytable t
where t.price = (select min(t2.price) from mytable t2 where t2.color = 'red');
या, रुकिए, मुझे लगता है कि आप प्रत्येक रंग के लिए न्यूनतम मूल्य चाहते हैं। दुह। उसके लिए एक सहसंबद्ध उपश्रेणी का उपयोग करें:
select t.*
from mytable t
where t.price = (select min(t2.price) from mytable t2 where t2.color = t.color);
यदि आप केवल न्यूनतम मूल्य चाहते हैं, तो एकत्रीकरण ठीक है:
select color, min(price)
from mytable t
group by color;
आपकी क्वेरी के सूत्रीकरण ने (मुझे) सुझाव दिया कि आप अन्य कॉलम भी चाहते हैं।
SELECT color , MIN(price ) FROM 'mytable' GROUP BY color;
Mysql doc में ग्रुप बाय के बारे में और पढ़ें। https://dev.mysql.com/doc/ refman/5.7/hi/group-by-functions.html
क्वेरी सभी रंग मान और प्रत्येक से न्यूनतम (कीमत) लौटाती है।
संबंधित सवाल
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।