sql >> Databasteknik >  >> RDS >> Database

SQL VÄLJ MAX

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


  1. Sammanfoga resultat från en SQL-fråga i Oracle

  2. välj rownum från lön där rownum=3;

  3. Varför förbrukar iteration genom en stor Django QuerySet enorma mängder minne?

  4. TO_CHAR av en Oracle PL/SQL TABLE-typ