De functie SQL Max() is een aggregatiefunctie in SQL. Deze functie retourneert de waarden die groter zijn in de voorwaarde. De voorwaarde kan een getal zijn of een tekenreeksuitdrukking.
De syntaxis voor de functie max. selecteren:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Laten we een diepe duik nemen in de SQL SELECT MAX.
Overweeg de reeds bestaande tabellen, die de volgende gegevens hebben:
Tabelnaam:Werknemers
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | STAD | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORAKLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORAKLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORAKLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Voorbeeld 1: Voer een zoekopdracht uit die het maximale salaris van werknemers zoekt in de werknemerstabel.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
In de bovenstaande zoekopdracht vinden we het maximale salaris uit de hele werknemerstabel. We hebben de Max (salaris) functie benoemd tot max salaris. Het salaris wordt weergegeven als de kolomnaam wanneer de output wordt geretourneerd.
Uitvoer:
MAX SALARIS |
65500 |
Zoals u kunt zien, is het maximale salaris 65500 uit de werknemerstabel
Voorbeeld 2: Voer een zoekopdracht uit om het maximale salaris te zoeken van werknemers wiens woonplaats Mumbai is vanuit de werknemerstabel.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
We hebben max (salaris) genoemd als salaris in de bovenstaande zoekopdracht, weergegeven als kolomnaam wanneer output wordt geretourneerd. We hebben het maximale salaris van een werknemer in Mumbai gevonden en de plaatsnaam weergegeven.
Uitvoer:
STAD | SALARIS |
MUMBAI | 60500 |
Zoals u kunt zien, is het maximale salaris van een werknemer die in de stad Mumbai woont 60500
Voorbeeld 3: Schrijf een zoekopdracht om het maximumsalaris van de werknemers te vinden in de werknemerstabel met werknemers van wie de afdeling Java is.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
In de bovenstaande query hebben we max (salaris) gealiast als maximum_salary, weergegeven als kolomnaam wanneer uitvoer wordt geretourneerd. We hebben het maximale salaris gevonden van een medewerker wiens afdeling Java is en hebben de afdelingsnaam weergegeven.
Uitvoer:
AFDELING | MAXIMUM_SALARY |
JAVA | 58500 |
Zoals u kunt zien, is het maximale salaris van een medewerker van de Java-afdeling 58500
Voorbeeld 4: Schrijf een zoekopdracht om het maximale salaris te vinden van werknemers van wie de afdeling een van de lijsten Oracle en FMW bevat uit de werknemerstabel.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
We hebben max (salaris) als alias gebruikt in de bovenstaande query, weergegeven als kolomnaam wanneer uitvoer wordt geretourneerd. We hebben het maximale salaris gevonden van een werknemer wiens afdeling Oracle en FMW is.
Uitvoer:
SALARIS |
65500 |
Voorbeeld 5: Voer een zoekopdracht uit om het maximale salaris te zoeken van werknemers met een salaris van meer dan 55000 en de stad omvat Noida, Delhi uit de tabel van de werknemers per stad.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
We hebben Max (salaris) genoemd als WERKNEMER_SALARY in de bovenstaande query, weergegeven als een kolomnaam wanneer uitvoer wordt geretourneerd. We hebben het maximale salaris gevonden van een werknemer wiens salaris hoger is dan 55000. Ook moet de woonplaats van de werknemer een van de namen zijn die zijn opgenomen in de parameter stad IN. We gebruikten ook de GROUP BY-clausule gevolgd door de kolom stad. De stad Noida zal worden gegroepeerd in één stad van alle werknemers wiens stad in Noida is en het salaris van de werknemers hebben gevonden, en dezelfde aanpak wordt gebruikt voor de stad Delhi.
Uitvoer:
STAD | EMPLOYEE_SALARY |
DELHI | 60000 |
NOIDA | 60000 |
Werknemer woont in de stad Delhi, het maximale salaris is 60000 en de werknemer woont in de stad Noida, het maximale salaris is 60000.
Voorbeeld 6: Voer een zoekopdracht uit om het maximale werknemerssalaris te zoeken in de tabelsteden van de werknemer zijn uniek voor werknemersgroep per afdeling.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
We hebben max (DISTINCT salaris) genoemd als Employee_salary in de bovenstaande zoekopdracht, weergegeven als kolomnaam wanneer output wordt geretourneerd. We hebben het maximale werknemerssalaris gevonden in de tabel met werknemers, rekening houdend met unieke steden in een groep per afdelingskolom.
Uitvoer:
AFDELING | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Voorbeeld 7: Schrijf een zoekopdracht om het maximale werknemerssalaris te vinden uit de unieke afdeling werknemersgroep van de werknemer per afdeling.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
In de bovenstaande query hebben we max (DISTINCT-salaris) als alias Werknemer_salaris weergegeven, weergegeven als kolomnaam wanneer uitvoer wordt geretourneerd. We hebben het maximale werknemerssalaris gevonden in de werknemerstabel, rekening houdend met unieke afdelingen gegroepeerd per afdelingskolom.
Uitvoer:
AFDELING | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 65500 |
JAVA | 58500 |
ORAKLE | 65500 |
TESTEN | 60500 |
Voorbeeld 8: Voer een zoekopdracht uit om het maximale salaris van de werknemer te zoeken in de tabelgroep van de werknemer op de afdeling waar max() salaris groter is dan 55000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
We hebben max (salaris) genoemd als salaris in de bovenstaande zoekopdracht, weergegeven als kolomnaam wanneer output wordt geretourneerd. We hebben het maximale werknemerssalaris gevonden in de tabel met werknemers, gevolgd door groep op afdelingsnaam en gebruikt met een voorwaarde waarbij max() groter is dan 55000.
Uitvoer:
AFDELING | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Zoals we kunnen zien, zijn alleen steden met geaggregeerde salarissen hoger dan 55000. Het hebben van een clausule is zoals een clausule. Het hebben van een clausule wordt gebruikt wanneer we een voorwaarde willen toepassen op de aggregatiefunctie. We gebruikten het hebben van clausule alleen wanneer we de aggregatiefunctie in de query gebruikten.
Voorbeeld 9: Schrijf een zoekopdracht om het maximale salaris van een werknemer te vinden met een laptopgroep van de afdeling.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
We hebben max (salaris) genoemd als salaris in de bovenstaande zoekopdracht, weergegeven als kolomnaam wanneer output wordt geretourneerd. Uitleg van de bovenstaande query, de eerste subquery wordt uitgevoerd (SELECTEER WERKNEMER VAN LAPTOP); als resultaat krijgen we de werknemers-ID's, inclusief de null-waarde. Nadat de subquery is uitgevoerd, wordt de hoofdquery uitgevoerd. SELECT AFDELING, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (output van subquery). In de IN-operator van de hoofdquery is er een medewerker-ID, die wordt uitgevoerd uit de subquery volgens de IN-operator. We krijgen ons eindresultaat, de groep op afdelingsnaam.
Uitvoer:
AFDELING | SALARIS |
C# | 60000 |
JAVA | 58500 |
ORAKLE | 60000 |
TESTEN | 55500 |