DISTINCT, ORDER BY DESC और LIMIT के साथ नवीनतम अनोखी तारीखें
नवीनतम तारीखें खोजने के लिए डेट रिकॉर्ड्स को ORDER BY DESC से सॉर्ट करें। केवल 3 तारीखें चाहिए तो LIMIT 3 उपयोग करें। डुप्लिकेट हटाने के लिए DISTINCT उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
AdmissionDate DATE
);
रिकॉर्ड्स इन्सर्ट करें (कुछ डुप्लिकेट तारीखों के साथ):
mysql> INSERT INTO DemoTable VALUES ('2019-09-04');
mysql> INSERT INTO DemoTable VALUES ('2019-08-10');
mysql> INSERT INTO DemoTable VALUES ('2019-09-21');
mysql> INSERT INTO DemoTable VALUES ('2019-09-18');
mysql> INSERT INTO DemoTable VALUES ('2019-09-21'); -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES ('2019-08-18');
mysql> INSERT INTO DemoTable VALUES ('2019-09-18'); -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES ('2019-09-16');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------------+ | AdmissionDate | +---------------+ | 2019-09-04 | | 2019-08-10 | | 2019-09-21 | | 2019-09-18 | | 2019-09-21 | | 2019-08-18 | | 2019-09-18 | | 2019-09-16 | +---------------+
टेबल में नवीनतम 3 अनोखी तारीखें खोजने के लिए क्वेरी:
mysql> SELECT AdmissionDate
FROM (SELECT DISTINCT AdmissionDate FROM DemoTable) AS tbl
ORDER BY AdmissionDate DESC
LIMIT 3;
आउटपुट:
+---------------+ | AdmissionDate | +---------------+ | 2019-09-21 | | 2019-09-18 | | 2019-09-16 | +---------------+
व्याख्या:
- आंतरिक सबक्वेरी:
SELECT DISTINCT AdmissionDate FROM DemoTableडुप्लिकेट तारीखों को हटाकर अनोखी तारीखें देता है: 2019-09-04, 2019-08-10, 2019-09-21, 2019-09-18, 2019-08-18, 2019-09-16 - ORDER BY AdmissionDate DESC: तारीखों को नवीनतम से सबसे पुराने क्रम में सॉर्ट करता है
- LIMIT 3: शीर्ष 3 तारीखें लेता है: 2019-09-21, 2019-09-18, 2019-09-16
वैकल्पिक (MySQL 8.0+):
SELECT DISTINCT AdmissionDate FROM DemoTable ORDER BY AdmissionDate DESC LIMIT 3;
MySQL 8.0+ में DISTINCT के बाद ORDER BY सीधे काम करता है बिना सबक्वेरी के।