Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

डुप्लिकेट मानों को अधिकतम तिथि के साथ प्रदर्शित करने के लिए SELECT क्वेरी

इसके लिए GROUP BY और HAVING का उपयोग करें।

उदाहरण

टेबल बनाएं:

mysql> create table DemoTable (
    -> StudentName varchar(100),
    -> DueDate date
    -> );
Query OK, 0 rows affected (0.72 sec)

रिकॉर्ड डालें:

mysql> insert into DemoTable values('John', '2019-01-11');
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable values('Chris', '2019-02-11');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Chris', '2019-03-11');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('John', '2019-04-11');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Bob', '2019-05-11');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Bob', '2019-06-11');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Robert', '2019-07-11');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Robert', '2019-08-11');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Robert', '2019-09-11');
Query OK, 1 row affected (0.15 sec)

सभी रिकॉर्ड देखें:

mysql> select * from DemoTable;

आउटपुट

+-------------+------------+
| StudentName | DueDate    |
+-------------+------------+
| John        | 2019-01-11 |
| Chris       | 2019-02-11 |
| Chris       | 2019-03-11 |
| John        | 2019-04-11 |
| Bob         | 2019-05-11 |
| Bob         | 2019-06-11 |
| Robert      | 2019-07-11 |
| Robert      | 2019-08-11 |
| Robert      | 2019-09-11 |
+-------------+------------+
9 rows in set (0.00 sec)

डुप्लिकेट मानों को अधिकतम तिथि के साथ प्रदर्शित करने की क्वेरी:

mysql> select tbl.StudentName, max(tbl.DueDate) from DemoTable tbl group by tbl.StudentName having count(*) > 1;

आउटपुट

+-------------+------------------+
| StudentName | max(tbl.DueDate) |
+-------------+------------------+
| John        | 2019-04-11       |
| Chris       | 2019-03-11       |
| Bob         | 2019-06-11       |
| Robert      | 2019-09-11       |
+-------------+------------------+
4 rows in set (0.00 sec)

व्याख्या: GROUP BY नाम से समूह बनाता है, MAX() प्रत्येक समूह की अधिकतम तिथि देता है, HAVING COUNT(*) > 1 केवल डुप्लिकेट वाले नामों को फ़िल्टर करता है।

  1. - MySQL में आज की तारीख 00:00 से वर्तमान समय तक की तारीख चुनें

    DATE(NOW()) (आज 00:00:00) और NOW() (वर्तमान डेटाटाइम) के बीच BETWEEN या तुलना ऑपरेटर का उपयोग करके आज के रिकॉर्ड फ़िल्टर करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (DueDate DATETIME); Query OK, 0 rows affected (0.66 sec) INSERT INTO DemoTable VALUES(2019-09-14),(2019-09-14 08:00:10),

  1. - MySQL में तिथि के अनुसार परिणाम समूहित करना और डुप्लिकेट मानों की गिनती दिखाना

    तिथि और LIKE फ़िल्टर के साथ समूह गिनती DATE() फ़ंक्शन से केवल तिथि भाग निकालकर GROUP BY करें, और LIKE से पैटर्न मिलान करें। तालिका और डेटा (202, 2013-03-18 04:10:01); क्वेरी: 202 से शुरू होने वाले कोड की तिथिवार गिनती GROUP BY DATE(ArrivalDate); परिणाम +-------------------+-------------------

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड