MIN, MAX और गैर-संख्यात्मक समेकन
तिथियों और स्ट्रिंग का समेकन तथा टेक्स्ट पर MIN का अर्थ समझें
MIN, MAX और गैर-संख्यात्मक समेकन, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
संख्याओं से आगे MIN और MAX
अभ्यर्थी मान लेते हैं कि MIN और MAX केवल संख्याओं पर काम करते हैं। साक्षात्कारकर्ता यह पूछना बहुत पसंद करते हैं: “MAX(name) क्या लौटाता है? MIN(order_date) के बारे में क्या?”
सच्चाई यह है कि MIN और MAX क्रमबद्ध किए जा सकने वाले किसी भी प्रकार पर काम करते हैं — संख्याओं, तिथियों और स्ट्रिंगों पर। प्रत्येक प्रकार के क्रमबद्ध करने के नियमों को समझना ही यहाँ परखी जा रही वास्तविक कुशलता है।
संख्यात्मक स्थिति
पहले परिचित उदाहरण से शुरू कीजिए। संख्यात्मक स्तंभों पर MIN सबसे छोटा मान और MAX सबसे बड़ा मान लौटाता है। सरल है।
अन्य एकत्रीकरण फलनों की तरह, MIN और MAX भी NULL को अनदेखा करते हैं। NULL कभी न्यूनतम या अधिकतम नहीं होता; उसे बस छोड़ दिया जाता है। यदि हर मान NULL हो, तो दोनों NULL लौटाते हैं।
SELECT MIN(salary) AS lowest, MAX(salary) AS highest
FROM employees;तारीखों पर MIN और MAX
तारीखों और टाइमस्टैम्प को पूरी तरह क्रमबद्ध किया जा सकता है, इसलिए MIN(order_date) से सबसे पहली तारीख और MAX(order_date) से सबसे हाल की तारीख मिलती है।
इससे आप बिना क्रमबद्ध करके LIMIT लगाए यह पता लगा सकते हैं कि "पहला ऑर्डर कब किया गया था?" (MIN) और "सबसे हाल की गतिविधि कब हुई?" (MAX)। यह इसका प्रचलित, सेट-आधारित समाधान है।
SELECT
MIN(order_date) AS first_order,
MAX(order_date) AS latest_order
FROM orders;एक क्वेरी में तारीखों का अंतराल
अक्सर अगला सवाल होता है: "यह ग्राहक कितने समय से सक्रिय है?" MIN और MAX को मिलाकर फिर उनका अंतर निकालिए।
इससे पहले और आखिरी ऑर्डर के बीच का अंतराल निकलता है। अंतर निकालने का सटीक तरीका अलग-अलग डेटाबेस-रूपों में भिन्न होता है, लेकिन MIN/MAX का विचार सार्वभौमिक है और यह दिखाता है कि आप अंतरालों को घोषणात्मक तरीके से व्यक्त कर सकते हैं।
SELECT
customer_id,
MIN(order_date) AS first_order,
MAX(order_date) AS last_order,
MAX(order_date) - MIN(order_date) AS active_days
FROM orders
GROUP BY customer_id;स्ट्रिंग्स पर MIN और MAX
यह वह हिस्सा है जो लोगों को अक्सर चौंका देता है। पाठ वाले स्तंभों पर MIN और MAX, स्तंभ के कोलेशन के आधार पर वर्णानुक्रमिक क्रम का उपयोग करते हैं।
इसलिए MIN(name) से वर्णानुक्रम में सबसे पहले आने वाला नाम मिलता है और MAX(name) से सबसे अंत में आने वाला नाम। MIN over {'Carol', 'Alice', 'Bob'} returns 'Alice'; MAX returns 'Carol'।
SELECT MIN(name) AS first_alpha, MAX(name) AS last_alpha
FROM employees;
-- with Alice, Bob, Carol: 'Alice' and 'Carol'कोलेशन और अक्षर-आकार संवेदनशीलता
स्ट्रिंग का क्रम कोलेशन पर निर्भर करता है, जो अक्षर-आकार की संवेदनशीलता और स्थानीय भाषा के नियमों को नियंत्रित करता है। कई डिफ़ॉल्ट कोलेशन में बड़े अक्षर छोटे अक्षरों से पहले आ सकते हैं, इसलिए {'apple', 'Banana'} पर MAX का परिणाम आपको चौंका सकता है।
इंटरव्यू में यह अवश्य बताइए कि स्ट्रिंग के MIN/MAX परिणाम कोलेशन पर निर्भर होते हैं। यह सूक्ष्मता रटे हुए उत्तर और वास्तविक समझ के बीच अंतर दिखाती है।
MIN(पाठ) का अर्थ क्या NOT है
एक आम गलतफ़हमी यह है कि MIN(name) से सबसे छोटी स्ट्रिंग या MAX(name) से सबसे लंबी स्ट्रिंग मिलती है। ऐसा नहीं है। इसका संबंध केवल क्रम से है, लंबाई से नहीं।
यदि आपको वास्तव में सबसे लंबी स्ट्रिंग चाहिए, तो आप LENGTH(name) के आधार पर क्रमबद्ध करके पहली पंक्ति चुन सकते हैं, या केवल लंबाई के लिए MAX(LENGTH(name)) का उपयोग कर सकते हैं। मान के क्रम और लंबाई को एक न समझें।
SELECT MAX(LENGTH(name)) AS longest_name_length
FROM employees;MIN/MAX स्तंभों को आपस में नहीं मिलाते
एक महत्वपूर्ण सावधानी: MIN और MAX स्वतंत्र रूप से एक ही स्तंभ पर काम करते हैं। वे उस न्यूनतम या अधिकतम मान वाली पूरी पंक्ति नहीं लौटाते।
यदि आप बिना समूह बनाए SELECT MIN(salary), name लिखते हैं, तो आपको सबसे कम कमाने वाले व्यक्ति का नाम नहीं मिलेगा — डेटाबेस-रूप के आधार पर आपको त्रुटि मिलेगी या कोई मनमाना नाम। पूरी पंक्ति प्राप्त करने के लिए ORDER BY + LIMIT या विंडो फ़ंक्शन का उपयोग कीजिए।
-- Wrong assumption: this does NOT give the lowest earner's name.
-- Correct approach to get the whole row:
SELECT name, salary
FROM employees
ORDER BY salary ASC
LIMIT 1;MIN/MAX के लिए NULL व्यवहार का पुनरावलोकन
SUM और AVG की तरह MIN और MAX भी NULL मानों को छोड़ देते हैं। NULL न तो सबसे छोटा मान है और न ही सबसे बड़ा।
- मिश्रित मान + NULL: NULL को नज़रअंदाज़ किया जाता है और वास्तविक न्यूनतम/अधिकतम मान लौटता है।
- सभी मान NULL हों या कोई पंक्ति न हो: MIN और MAX NULL लौटाते हैं।
सभी एग्रीगेट में यह एकरूपता बताना उपयोगी है: "सभी मानक एग्रीगेट NULL मानों को नज़रअंदाज़ करते हैं।"
इसे समूह में रखना
प्रति-समूह चरम मान निकालने के लिए GROUP BY के साथ MIN और MAX बहुत उपयोगी होते हैं। "प्रत्येक विभाग का सबसे अधिक वेतन" इसका पाठ्यपुस्तक जैसा उदाहरण है।
इससे प्रत्येक विभाग के लिए एक पंक्ति मिलती है, जिसमें उस विभाग का सबसे अधिक वेतन होता है। याद रखिए: इससे केवल मान मिलता है, कर्मचारी नहीं। उसके साथ नाम जोड़ना एक अलग और आम अगली समस्या है।
SELECT department, MAX(salary) AS top_salary
FROM employees
GROUP BY department;आत्मविश्वास से उत्तर कैसे दें
इंटरव्यू में एक मजबूत उत्तर होगा: "MIN और MAX किसी भी ऐसे प्रकार पर काम करते हैं जिसे क्रमबद्ध किया जा सकता है। संख्याओं के लिए ये सबसे छोटा/सबसे बड़ा, तारीखों के लिए सबसे पहला/सबसे हाल का, और स्ट्रिंग्स के लिए स्तंभ के कोलेशन के अनुसार वर्णानुक्रमिक मान देते हैं। ये NULL मानों को नज़रअंदाज़ करते हैं और केवल तब NULL लौटाते हैं जब कोई गैर-NULL मान मौजूद न हो। ये पूरी पंक्ति नहीं, बल्कि एक मान लौटाते हैं; इसलिए पंक्ति प्राप्त करने के लिए मैं LIMIT के साथ ORDER BY या विंडो फ़ंक्शन का उपयोग करूँगा।"
त्वरित जाँच
स्ट्रिंग एग्रीगेशन के बारे में विचार कीजिए।
पुनरावलोकन
MIN और MAX के बारे में सब कुछ:
- ये किसी भी क्रमबद्ध किए जा सकने वाले प्रकार पर काम करते हैं: संख्याएँ, तारीखें और स्ट्रिंग्स।
- स्ट्रिंग्स में लंबाई के बजाय वर्णानुक्रमिक/कोलेशन का क्रम उपयोग होता है।
- तारीखों में: MIN = सबसे पहली, MAX = सबसे हाल की।
- ये NULL मानों को नज़रअंदाज़ करते हैं; सभी मान NULL हों या कोई पंक्ति न हो, तो NULL लौटता है।
- ये पूरी पंक्ति नहीं, केवल मान लौटाते हैं — पूरी पंक्ति के लिए ORDER BY + LIMIT का उपयोग कीजिए।
अगला विषय: GROUP BY के बिना एग्रीेट का उपयोग करने पर क्या होता है।
एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 90
- पाठ
- 360
अक्सर पूछे जाने वाले प्रश्न
क्या “MIN, MAX और गैर-संख्यात्मक समेकन” पाठ निःशुल्क है?
हाँ—“MIN, MAX और गैर-संख्यात्मक समेकन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“MIN, MAX और गैर-संख्यात्मक समेकन” में मैं क्या सीखूँगा?
तिथियों और स्ट्रिंग का समेकन तथा टेक्स्ट पर MIN का अर्थ समझें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“MIN, MAX और गैर-संख्यात्मक समेकन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- COUNT(*) बनाम COUNT(COLUMN) बनाम COUNT(DISTINCT)
- NULL के साथ SUM और AVG
- MIN, MAX और गैर-संख्यात्मक समेकन
- GROUP BY के बिना समेकन