SQL Max()-funktionen är en aggregerad funktion i SQL. Denna funktion returnerar de värden som är högre i villkoret. Villkoret kan vara ett tal, eller det kan vara ett stränguttryck.
Syntaxen för funktionen select max:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Låt oss ta en djupdykning i SQL SELECT MAX.
Tänk på de redan befintliga tabellerna, som har följande data:
Tabellnamn:Anställda
ANSTÄLLDA ID | FIRST_NAME | LAST_NAME | LÖN | STAD | AVDELNING | 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 | TESTER | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60 000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTER | 4 |
Exempel 1: Utför en fråga som söker efter maxlönen för anställda från de anställdas tabell.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
I ovanstående fråga hittar vi maxlönen från hela de anställdas tabell. Vi har döpt funktionen Max (lön) till maxlön. Lönen kommer att visas som kolumnnamnet när utdata returneras.
Utdata:
MAXLÖN |
65500 |
Som du kan se är maxlönen 65500 från de anställdas tabell
Exempel 2: Kör en fråga för att söka efter maxlönen för anställda vars bostadsort är Mumbai från de anställdas bord.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
Vi har angett max (lön) som lön i ovanstående fråga, visas som kolumnnamn när utdata returneras. Vi har hittat maxlönen för en anställd i Mumbai och visat stadens namn.
Utdata:
STAD | LÖN |
MUMBAI | 60500 |
Som du kan se är maxlönen för en anställd som bor i staden Mumbai 60500
Exempel 3: Skriv en fråga för att hitta de anställdas maximala lön från de anställdas tabell över anställda vars avdelning är Java.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
I ovanstående fråga har vi alias max (lön) som maximum_salary, visas som kolumnnamn när utdata returneras. Vi har hittat maxlönen för en anställd vars avdelning är Java och visat avdelningens namn.
Utdata:
AVDELNING | MAXIMUM_SALARY |
JAVA | 58500 |
Som du kan se är den maximala lönen för en anställd från Java-avdelningen 58500
Exempel 4: Skriv en fråga för att hitta maxlönen för anställda vars avdelning inkluderar en av listorna är Oracle och FMW från de anställdas tabell.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Vi har alias max (lön) i ovanstående fråga, visas som kolumnnamn när utdata returneras. Vi har hittat maxlönen för en anställd vars avdelning är Oracle och FMW.
Utdata:
LÖN |
65500 |
Exempel 5: Kör en fråga för att söka efter maxlönen för anställda vars lön är större än 55 000 och staden inkluderar Noida, Delhi från anställdas tabell grupp efter stad.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
Vi har namngett Max (lön) som EMPLOYEE_SLARY i ovanstående fråga, visas som ett kolumnnamn när utdata returneras. Vi har hittat maxlönen för en anställd vars lön är högre än 55 000. Dessutom måste anställds stad vara ett av namnen som ingår i parametern city IN. Vi använde också GROUP BY-satsen följt av stadskolumnen. Staden Noida kommer att grupperas i en stad av alla anställda vars stad i Noida och hittade de anställdas lön, och samma tillvägagångssätt används för staden Delhi.
Utdata:
STAD | EMPLOYEE_SALARY |
DELHI | 60 000 |
NOIDA | 60 000 |
Anställd är bosatt i staden Delhi, maxlönen är 60 000, och anställd bor i staden Noida, maxlönen är 60 000.
Exempel 6: Kör en fråga för att söka max lön för anställda från Anställdas tabellstäder är unika för anställda grupp efter avdelning.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Vi har namngett max (DISTINKT lön) som Employee_salary i ovanstående fråga, visas som kolumnnamn när utdata returneras. Vi har hittat den maximala lönen för anställda från de anställdas tabell med hänsyn till unika städer i en grupp efter avdelningskolumn.
Utdata:
AVDELNING | EMPLOYEE_SALARY |
NOIDA | 60 000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Exempel 7: Skriv en fråga för att hitta den maximala anställda lönen från Anställds tabell unika avdelning för anställda gruppera efter avdelningen.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
I ovanstående fråga har vi alias max (DISTINCT lön) som Employee_salary, visas som kolumnnamn när utdata returneras. Vi har hittat den maximala anställdas lön från de anställdas tabell med hänsyn till unika avdelningar grupperade efter avdelningskolumn.
Utdata:
AVDELNING | EMPLOYEE_SALARY |
C# | 60 000 |
FMW | 65500 |
JAVA | 58500 |
ORACLE | 65500 |
TESTER | 60500 |
Exempel 8: Kör en fråga för att söka efter den anställdes maxlön från den anställdes tabellgrupp av avdelningen där max() lön är större än 55 000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
Vi har angett max (lön) som lön i ovanstående fråga, visas som kolumnnamn när utdata returneras. Vi har hittat maximal anställd lön från de anställdas tabell följt av grupp efter avdelningsnamn och använt med ett villkor där max() är större än 55 000.
Utdata:
AVDELNING | EMPLOYEE_SALARY |
NOIDA | 60 000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Som vi kan se är bara städer med sammanlagda löner större än 55 000. Att ha en klausul är som where-klausul. Att ha en klausul används när vi vill tillämpa något villkor på aggregatfunktionen. Vi använde endast ha-sats när vi använde aggregatfunktion i frågan.
Exempel 9: Skriv en fråga för att hitta en anställds maximala lön med en bärbar grupp av avdelningen.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Vi har angett max (lön) som lön i ovanstående fråga, visas som kolumnnamn när utdata returneras. Förklaring av ovanstående fråga, Första underfrågan kommer att exekveras (VÄLJ ANSTÄLLARE FRÅN LAPTOP); som ett resultat kommer vi att få medarbetar-ID, inklusive nollvärdet. Efter att underfrågan har körts kommer huvudfrågan att köras VÄLJ AVDELNING, MAX(LÖN) SOM LÖN FRÅN ANSTÄLLDA DÄR ANSTÄLLDA ÄR IN (utdata från underfrågan). I IN-operatören för huvudfrågan finns en anställds id, som matas ut från underfrågan enligt IN-operatören. Vi kommer att få vårt slutliga resultat som är gruppen efter avdelningsnamn.
Utdata:
AVDELNING | LÖN |
C# | 60 000 |
JAVA | 58500 |
ORACLE | 60 000 |
TESTER | 55500 |