SQLite max()
फ़ंक्शन किसी समूह में सभी मानों से अधिकतम मान लौटाता है।
अधिकतम मान वह मान है जो ORDER BY
. का उपयोग करने वाली क्वेरी में आखिरी बार दिखाई देगा एक ही कॉलम पर क्लॉज।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT max(Price) FROM Products;
परिणाम:
389.45
यहां एक क्वेरी है जो उस तालिका की सभी पंक्तियां लौटाती है।
SELECT * FROM Products
ORDER BY Price;
परिणाम:
ProductId ProductName Price ---------- ----------- ---------- 5 Red Widget 3 Widget Open 89.27 4 Foobar Set 120.0 2 Widget Hold 139.5 1 Blue Widget 389.45. को होल्ड करें
ध्यान दें कि पहली पंक्ति में मूल्य के लिए NULL मान है। max()
फ़ंक्शन इसे अनदेखा करता है, क्योंकि अन्य पंक्तियों में गैर-शून्य मान होते हैं। यदि सभी पंक्तियाँ NULL थीं, तो max()
NULL लौटाएगा।
मैंने ORDER BY
. का उपयोग किया है इस उदाहरण में खंड। जैसा कि बताया गया है, max()
फ़ंक्शन वह मान लौटाता है जो इस क्लॉज़ का उपयोग करते समय अंतिम दिखाई देता है (यह मानते हुए कि आप कॉलम को आरोही क्रम में ऑर्डर करते हैं, जो कि डिफ़ॉल्ट है)।
स्पष्ट होने के लिए, मैं उसी परिणाम के लिए निम्नलिखित का उपयोग कर सकता था:
SELECT * FROM Products
ORDER BY Price ASC;
Max() को काउंट के साथ मिलाएं()
यहां एक उदाहरण दिया गया है जो max()
. को जोड़ती है count()
. के साथ कार्य करें अधिकतम गिनती वापस करने के लिए कार्य करें।
SELECT max(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
परिणाम:
21
हम ORDER BY
. के साथ एक अन्य क्वेरी चलाकर इसे सत्यापित कर सकते हैं खंड।
SELECT
ar.Name,
count(al.Title) AS AlbumCount
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
GROUP BY ar.Name
ORDER BY AlbumCount DESC
LIMIT 10;
परिणाम:
Name AlbumCount -------------------- ---------- Iron Maiden 21 Led Zeppelin 14 Deep Purple 11 Metallica 10 U2 10 Ozzy Osbourne 6 Pearl Jam 5 Faith No More 4 Foo Fighters 4 Lost 4
शून्य मानों से निपटना
जैसा कि उल्लेख किया गया है, यदि समूह में कोई गैर-शून्य मान नहीं हैं (अर्थात सभी मान NULL हैं), तो max()
शून्य लौटाता है।
SELECT
max(123),
max(NULL);
परिणाम:
max(123) max(NULL) ---------- ---------- 123
स्ट्रिंग्स पर Max() का उपयोग करना
जैसा कि बताया गया है, max()
वह मान लौटाता है जो ORDER BY
. का उपयोग करके पिछली बार लौटाया जाएगा खंड (यह मानते हुए कि यह डिफ़ॉल्ट आरोही क्रम का उपयोग कर रहा है)।
यही अवधारणा स्ट्रिंग्स पर लागू होती है।
SELECT max(ProductName) FROM Products;
परिणाम:
Widget Opener
तो यह स्ट्रिंग को अधिकतम वर्णों या उसके जैसा कुछ भी वापस नहीं करता है।
हम ORDER BY
. का उपयोग करके एक क्वेरी के साथ इस परिणाम को सत्यापित कर सकते हैं खंड।
SELECT * FROM Products
ORDER BY ProductName;
परिणाम:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 4 Foobar Set 120.0 5 Red Widget 2 Widget Holder 139.5 3 Widget Opener 89.27