SQL Max()-funktionen er en aggregeret funktion i SQL. Denne funktion returnerer de værdier, der er større i tilstanden. Betingelsen kan være et tal, eller det kan være et strengudtryk.
Syntaksen for funktionen select max:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Lad os tage et dybt dyk ned i SQL SELECT MAX.
Overvej de allerede eksisterende tabeller, som har følgende data:
Tabelnavn:Medarbejdere
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | 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 | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Eksempel 1: Udfør en forespørgsel, der søger efter medarbejdernes maksimale løn fra medarbejdernes tabel.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
I ovenstående forespørgsel finder vi den maksimale løn fra hele medarbejdernes tabel. Vi har navngivet Max (løn) funktionen som max løn. Lønnen vil blive vist som kolonnenavnet, når outputtet returneres.
Output:
MAX LØN |
65500 |
Som du kan se, er den maksimale løn 65500 fra medarbejdernes tabel
Eksempel 2: Udfør en forespørgsel for at søge efter maks. løn for medarbejdere, hvis bopælsby er Mumbai fra medarbejdernes tabel.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
Vi har navngivet max (løn) som løn i ovenstående forespørgsel, vist som kolonnenavn, når output returneres. Vi har fundet den maksimale løn for en medarbejder i Mumbai og vist byens navn.
Output:
BY | LØN |
MUMBAI | 60500 |
Som du kan se, er den maksimale løn for en medarbejder, der bor i byen Mumbai, 60500
Eksempel 3: Skriv en forespørgsel for at finde medarbejdernes maksimale løn fra medarbejdernes tabel over medarbejdere, hvis afdeling er Java.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
I ovenstående forespørgsel har vi kaldet max (løn) som maximum_salary, vist som kolonnenavn, når output returneres. Vi har fundet den maksimale løn for en medarbejder, hvis afdeling er Java og vist afdelingsnavnet.
Output:
AFDELING | MAXIMUM_SALARY |
JAVA | 58500 |
Som du kan se, er den maksimale løn for en medarbejder fra Java-afdelingen 58500
Eksempel 4: Skriv en forespørgsel for at finde den maksimale løn for medarbejdere, hvis afdeling inkluderer en af listerne er Oracle og FMW fra medarbejdernes tabel.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Vi har aliaseret max (løn) i ovenstående forespørgsel, vist som kolonnenavn, når output returneres. Vi har fundet den maksimale løn for en medarbejder, hvis afdeling er Oracle og FMW.
Output:
LØN |
65500 |
Eksempel 5: Udfør en forespørgsel for at søge efter maks. løn for medarbejdere, hvis løn er større end 55.000, og byen omfatter Noida, Delhi fra medarbejdernes tabel, grupper efter by.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
Vi har navngivet Max (løn) som EMPLOYEE_SALARY i ovenstående forespørgsel, vist som et kolonnenavn, når output returneres. Vi har fundet den maksimale løn for en medarbejder, hvis løn er større end 55.000. Medarbejderbyen skal også være et af navnene, der indgår i parameteren by IN. Vi brugte også GROUP BY-sætningen efterfulgt af bykolonnen. Noida-byen vil blive grupperet i én by af alle de ansatte, hvis by i Noida og fandt medarbejdernes løn, og den samme tilgang bruges til Delhi by.
Output:
BY | EMPLOYEE_SALARY |
DELHI | 60.000 |
NOIDA | 60.000 |
Medarbejder bor i Delhi by, maks. løn er 60.000, og medarbejder bor i Noida by, maks. løn er 60.000.
Eksempel 6: Udfør en forespørgsel for at søge efter maks. medarbejderløn fra Medarbejders tabelbyer er unikke for medarbejdere grupperet efter afdeling.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Vi har navngivet max (DISTINCT løn) som Employee_salary i ovenstående forespørgsel, vist som kolonnenavn, når output returneres. Vi har fundet den maksimale medarbejderløn fra medarbejdernes tabel under hensyntagen til unikke byer i en gruppe for afdelingskolonne.
Output:
AFDELING | EMPLOYEE_SALARY |
NOIDA | 60.000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Eksempel 7: Skriv en forespørgsel for at finde den maksimale medarbejderløn fra Medarbejderens tabel unikke afdeling af medarbejdere grupperet efter afdelingen.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
I ovenstående forespørgsel har vi aliaseret max (DISTINCT løn) som Employee_salary, vist som kolonnenavn, når output returneres. Vi har fundet den maksimale medarbejderløn fra medarbejdernes tabel under hensyntagen til unikke afdelinger grupperet efter afdelingskolonne.
Output:
AFDELING | EMPLOYEE_SALARY |
C# | 60.000 |
FMW | 65500 |
JAVA | 58500 |
ORACLE | 65500 |
TEST | 60500 |
Eksempel 8: Udfør en forespørgsel for at søge efter den maksimale løn for medarbejderen fra den ansattes tabelgruppe af afdelingen, hvor max() løn er større end 55.000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
Vi har navngivet max (løn) som løn i ovenstående forespørgsel, vist som kolonnenavn, når output returneres. Vi har fundet maksimal medarbejderløn fra medarbejdernes tabel efterfulgt af gruppe efter afdelingsnavn og brugt med en betingelse, hvor max() er større end 55000.
Output:
AFDELING | EMPLOYEE_SALARY |
NOIDA | 60.000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Som vi kan se, er det kun byer med samlede lønninger, der er større end 55.000. At have en klausul er ligesom hvor-klausul. At have en klausul bruges, når vi ønsker at anvende en betingelse på den samlede funktion. Vi brugte kun have-sætning, når vi brugte aggregatfunktion i forespørgslen.
Eksempel 9: Skriv en forespørgsel for at finde en medarbejders maksimale løn med en bærbar gruppe af afdelingen.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Vi har navngivet max (løn) som løn i ovenstående forespørgsel, vist som kolonnenavn, når output returneres. Forklaring af ovenstående forespørgsel. Første underforespørgsel vil blive udført (VÆLG MEDARBEJDER FRA LAPTOP); som et resultat, vil vi få medarbejder-id'erne, inklusive null-værdien. Efter at underforespørgslen er udført, vil hovedforespørgslen blive udført VÆLG AFDELING, MAKS(LØN) SOM LØN FRA MEDARBEJDERE, HVOR MEDARBEJDER IND (output af underforespørgsel). I IN-operatøren for hovedforespørgslen er der en medarbejders id, som udlæses fra underforespørgslen ifølge IN-operatøren. Vi får vores endelige resultat, som er gruppen efter afdelingsnavn.
Output:
AFDELING | LØN |
C# | 60.000 |
JAVA | 58500 |
ORACLE | 60.000 |
TEST | 55500 |