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

MySQL क्वेरी: अधिकतम और न्यूनतम वेतन वाली पंक्ति चुनें

MySQL में अधिकतम और न्यूनतम वेतन वाली पंक्तियों को एक साथ चुनने के लिए, सबक्वेरी के साथ MIN(), MAX() और UNION ALL का उपयोग करें।

टेबल बनाएं:

mysql> create table DemoTable ( 
    -> EmployeeName VARCHAR(20), 
    -> EmployeeSalary INT 
    -> ); 
Query OK, 0 rows affected (0.70 sec)

रिकॉर्ड इन्सर्ट करें:

mysql> insert into DemoTable values('Bob',8800); 
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Chris',9800); 
Query OK, 1 row affected (0.63 sec)
mysql> insert into DemoTable values('David',7600); 
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Sam',9600); 
Query OK, 1 row affected (0.14 sec)

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

mysql> select * from DemoTable;
+--------------+----------------+
| EmployeeName | EmployeeSalary |
+--------------+----------------+
| Bob          |           8800 |
| Chris        |           9800 |
| David        |           7600 |
| Sam          |           9600 |
+--------------+----------------+
4 rows in set (0.00 sec)

न्यूनतम और अधिकतम वेतन वाली पंक्तियाँ चुनने के लिए क्वेरी:

mysql> select * from DemoTable 
    -> where EmployeeSalary IN ( 
    ->     SELECT MAX(EmployeeSalary) FROM DemoTable 
    ->     UNION ALL 
    ->     SELECT MIN(EmployeeSalary) FROM DemoTable 
    -> );

परिणाम:

+--------------+----------------+
| EmployeeName | EmployeeSalary |
+--------------+----------------+
| Chris        |           9800 |
| David        |           7600 |
+--------------+----------------+
2 rows in set (0.05 sec)

व्याख्या

  • MAX(EmployeeSalary) - अधिकतम वेतन (9800) लौटाता है।
  • MIN(EmployeeSalary) - न्यूनतम वेतन (7600) लौटाता है।
  • UNION ALL - दोनों परिणामों को जोड़ता है (डुप्लिकेट नहीं हटाता)।
  • IN क्लॉज - मुख्य क्वेरी उन वेतन वाली पंक्तियाँ चुनती है।

वैकल्पिक दृष्टिकोण (MySQL 8.0+)

विंडो फंक्शन का उपयोग करके:

WITH Ranked AS (
    SELECT *, 
           ROW_NUMBER() OVER (ORDER BY EmployeeSalary ASC) AS rn_min,
           ROW_NUMBER() OVER (ORDER BY EmployeeSalary DESC) AS rn_max
    FROM DemoTable
)
SELECT EmployeeName, EmployeeSalary 
FROM Ranked 
WHERE rn_min = 1 OR rn_max = 1;

नोट

यदि कई कर्मचारियों का समान अधिकतम/न्यूनतम वेतन हो, तो यह क्वेरी उन सभी को लौटाएगी।

  1. - MySQL UNION SELECT और IN क्लॉज एक ही क्वेरी में

    UNION और IN क्लॉज को संयोजित करना पहले टेबल बनाएं: create table DemoTable1 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (1.24 sec) रिकॉर्ड डालें: insert into DemoTable1 values(210,Adam); Query OK, 1 row affected (0.11 sec) सभी रिकॉर्ड देखें: select * from DemoTable1; आउटप

  1. - MySQL में सबसे अधिक सैलरी कैसे चुनें?

    MAX() फ़ंक्शन किसी कॉलम का अधिकतम मान प्राप्त करने के लिए: select MAX(yourColumnName) AS anyAliasName from yourTableName; उदाहरण insert into demo44(employee_name,employee_salary) values(John,3000), (David,4500), (Bob,3500), (Carol,5500), (Mike,4900); क्वेरी और परिणाम select MAX(employee_salary)

  1. - MySQL में न्यूनतम और अधिकतम मान प्राप्त करना

    किसी कॉलम में अधिकतम मान खोजने के लिए MAX(columnName) का उपयोग करना होगा, जबकि किसी कॉलम में न्यूनतम मान खोजने के लिए MIN(columnName) का उपयोग करना होगा। मान लीजिए किसी विशिष्ट कॉलम में उच्चतम और निम्नतम मान खोजने का सिंटैक्स इस प्रकार है: mysql> SELECT @min_val:=MIN(columnName),@max_val:=MAX(c