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

मिन () - MySQL में एक कॉलम में न्यूनतम मान खोजें

MySQL MIN() फ़ंक्शन एक समग्र फ़ंक्शन है जो किसी व्यंजक से न्यूनतम मान लौटाता है।

आम तौर पर, अभिव्यक्ति कॉलम में अलग-अलग पंक्तियों के रूप में लौटाए गए मानों की एक श्रृंखला होगी, और आप इस फ़ंक्शन का उपयोग लौटाई गई पंक्तियों से न्यूनतम मान खोजने के लिए कर सकते हैं। यदि कोई मेल खाने वाली पंक्तियाँ नहीं हैं, MIN() रिटर्न NULL

उदाहरण के लिए, आप इस फ़ंक्शन का उपयोग यह पता लगाने के लिए कर सकते हैं कि शहरों की सूची में से किस शहर की आबादी सबसे कम है।

सिंटैक्स

MIN() . का सिंटैक्स इस तरह जाता है:

MIN([DISTINCT] expr) [over_clause]

जहां expr वह अभिव्यक्ति है जिसके लिए आप न्यूनतम मान चाहते हैं।

over_clause एक वैकल्पिक क्लॉज है जो विंडो फ़ंक्शंस के साथ काम करता है। ध्यान दें कि over_clause केवल तभी उपयोग किया जा सकता है जब आप DISTINCT . का उपयोग नहीं करते हैं कीवर्ड।

(वैकल्पिक) DISTINCT कीवर्ड का उपयोग डुप्लिकेट मानों को समाप्त करने के लिए किया जा सकता है।

मूल उदाहरण

सबसे पहले, यहां कच्चा डेटा है जिसका उपयोग हम इस उदाहरण में करेंगे:

USE world;
SELECT Name, Population
FROM City
WHERE CountryCode = 'THA';

परिणाम:

+-------------------+------------+
| Name              | Population |
+-------------------+------------+
| Bangkok           |    6320174 |
| Nonthaburi        |     292100 |
| Nakhon Ratchasima |     181400 |
| Chiang Mai        |     171100 |
| Udon Thani        |     158100 |
| Hat Yai           |     148632 |
| Khon Kaen         |     126500 |
| Pak Kret          |     126055 |
| Nakhon Sawan      |     123800 |
| Ubon Ratchathani  |     116300 |
| Songkhla          |      94900 |
| Nakhon Pathom     |      94100 |
+-------------------+------------+

हम MIN() . का उपयोग कर सकते हैं सबसे छोटी आबादी वाले शहर को खोजने के लिए कार्य करें (अर्थात इसके जनसंख्या कॉलम में सबसे छोटे मान वाली पंक्ति)।

USE world;
SELECT MIN(Population) AS 'Minimum Value'
FROM City
WHERE CountryCode = 'THA';

परिणाम:

+---------------+
| Minimum Value |
+---------------+
|         94100 |
+---------------+

ग्रुप बाय क्लॉज

हम GROUP BY . का उपयोग कर सकते हैं उस जिले के सबसे छोटे शहर (जनसंख्या के अनुसार) की आबादी के साथ प्रत्येक जिले को सूचीबद्ध करने के लिए खंड:

USE world;
SELECT District, MIN(Population) AS 'Minimum Value'
FROM City
WHERE CountryCode = 'AUS'
GROUP BY District;

परिणाम:

+-----------------+---------------+
| District        | Minimum Value |
+-----------------+---------------+
| New South Wales |        219761 |
| Victoria        |        125382 |
| Queensland      |         92273 |
| West Australia  |       1096829 |
| South Australia |        978100 |
| Capital Region  |        322723 |
| Tasmania        |        126118 |
+-----------------+---------------+

द ऑर्डर बाय क्लॉज

हम ORDER BY . का भी उपयोग कर सकते हैं एक कॉलम निर्दिष्ट करने के लिए क्लॉज जिसके द्वारा ऑर्डर करना है:

USE world;
SELECT District, MIN(Population) AS 'Minimum Value'
FROM City
WHERE CountryCode = 'AUS'
GROUP BY District
ORDER BY `Minimum Value` ASC;

परिणाम:

+-----------------+---------------+
| District        | Minimum Value |
+-----------------+---------------+
| Queensland      |         92273 |
| Victoria        |        125382 |
| Tasmania        |        126118 |
| New South Wales |        219761 |
| Capital Region  |        322723 |
| South Australia |        978100 |
| West Australia  |       1096829 |
+-----------------+---------------+

यह परिणामों को आरोही क्रम में क्रमित करता है, जो पहले न्यूनतम मान को सूचीबद्ध करता है।

ध्यान दें कि, बहु-शब्द उपनाम (जैसे `Minimum Value`) द्वारा आदेश देते समय ), आपको बैकटिक वर्ण का उपयोग करना होगा (` ) धर्मोपदेश के बजाय (' ) दो शब्दों को घेरने के लिए।

न्यूनतम वर्ण लंबाई ज्ञात करें

MIN() फ़ंक्शन केवल संख्यात्मक डेटा वाले कॉलम तक सीमित नहीं है। आप MIN() . को भी जोड़ सकते हैं अन्य क्षेत्रों में न्यूनतम मान वापस करने के लिए अन्य कार्यों के साथ।

उदाहरण के लिए, हमारे नमूना डेटा का उपयोग करके, हम City में वर्णों की न्यूनतम संख्या के साथ मान प्राप्त कर सकते हैं कॉलम:

SELECT MIN(CHAR_LENGTH(Name)) AS 'Minimum Character Length'
FROM city;

परिणाम:

+--------------------------+
| Minimum Character Length |
+--------------------------+
|                        3 |
+--------------------------+

हम इसे निम्न क्वेरी का उपयोग करके भी देख सकते हैं (जिसमें MIN() . शामिल नहीं है समारोह):

SELECT Name, CHAR_LENGTH(Name) AS 'Character Length'
FROM city
ORDER BY `Character Length`
LIMIT 10;

परिणाम:

+------+------------------+
| Name | Character Length |
+------+------------------+
| Ome  |                3 |
| Yao  |                3 |
| Qom  |                3 |
| Itu  |                3 |
| Tsu  |                3 |
| Ube  |                3 |
| Ise  |                3 |
| Uji  |                3 |
| Ede  |                3 |
| Ota  |                3 |
+------+------------------+

यह देखते हुए कि कई शहरों की वर्ण लंबाई समान है, हम इस क्वेरी को केवल विशिष्ट मान लौटाने के लिए समायोजित कर सकते हैं:

SELECT DISTINCT CHAR_LENGTH(Name) AS 'Character Length'
FROM city
ORDER BY `Character Length`
LIMIT 10;

परिणाम:

+------------------+
| Character Length |
+------------------+
|                3 |
|                4 |
|                5 |
|                6 |
|                7 |
|                8 |
|                9 |
|               10 |
|               11 |
|               12 |
+------------------+

ओवर क्लॉज का उपयोग करना

जैसा कि उल्लेख किया गया है, सिंटैक्स OVER . के लिए अनुमति देता है आपके प्रश्नों में शामिल करने के लिए खंड। मूल रूप से, OVER क्लॉज आपको यह निर्दिष्ट करने की अनुमति देता है कि विंडो फ़ंक्शन द्वारा प्रसंस्करण के लिए क्वेरी पंक्तियों को समूहों में कैसे विभाजित किया जाए।

यहां एक उदाहरण दिया गया है:

SELECT 
    District,
    Name AS City,
    Population AS 'City Population',
    MIN(Population) OVER(PARTITION BY District) AS 'District Minimum'
FROM City
WHERE CountryCode = 'AUS'
ORDER BY `District Minimum` DESC;

परिणाम:

+-----------------+---------------+-----------------+------------------+
| District        | City          | City Population | District Minimum |
+-----------------+---------------+-----------------+------------------+
| West Australia  | Perth         |         1096829 |          1096829 |
| South Australia | Adelaide      |          978100 |           978100 |
| Capital Region  | Canberra      |          322723 |           322723 |
| New South Wales | Sydney        |         3276207 |           219761 |
| New South Wales | Wollongong    |          219761 |           219761 |
| New South Wales | Newcastle     |          270324 |           219761 |
| New South Wales | Central Coast |          227657 |           219761 |
| Tasmania        | Hobart        |          126118 |           126118 |
| Victoria        | Melbourne     |         2865329 |           125382 |
| Victoria        | Geelong       |          125382 |           125382 |
| Queensland      | Townsville    |          109914 |            92273 |
| Queensland      | Brisbane      |         1291117 |            92273 |
| Queensland      | Cairns        |           92273 |            92273 |
| Queensland      | Gold Coast    |          311932 |            92273 |
+-----------------+---------------+-----------------+------------------+

यह उदाहरण पंक्तियों को District . द्वारा विभाजित करता है , प्रत्येक विभाजन (जिला) के लिए न्यूनतम मान प्रदान करना। यह आपको एक ही जिले के सबसे छोटे शहर (जनसंख्या के अनुसार) की जनसंख्या के साथ-साथ प्रत्येक शहर की जनसंख्या जैसे अधिक विस्तृत डेटा देखने की अनुमति देता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि 1698 (28000):उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  2. mysql, कॉलम नामों के माध्यम से पुनरावृति

  3. टेक्स्ट फ़ील्ड के शब्द गणना आँकड़े निर्धारित करने के लिए SQL का उपयोग करना

  4. MySQL अपडेट इनर जॉइन टेबल क्वेरी

  5. चेतावनी:mysql_result() पैरामीटर 1 को संसाधन, बूलियन दिए जाने की अपेक्षा करता है