Funkcja SQL Max() jest funkcją agregującą w SQL. Ta funkcja zwraca wartości, które są większe w warunku. Warunkiem może być liczba lub wyrażenie tekstowe.
Składnia funkcji select max:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Przyjrzyjmy się bliżej SQL SELECT MAX.
Weź pod uwagę już istniejące tabele, które zawierają następujące dane:
Nazwa tabeli:Pracownicy
ID PRACOWNIKA | FIRST_NAME | LAST_NAME | WYNAGRODZENIE | MIASTO | DZIAŁ | IDENTYFIKATOR KIEROWCY |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | WYROCZNIA | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACI | SHARMA | 55500 | CZANDIGAR | WYROCZNIA | 1 |
2002 | PRZYJMUJ SIĘ | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | MUMBAJ | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAJ | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAJ | TESTOWANIE | 4 |
4002 | ASHWINI | TORBA | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | WYROCZNIA | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTOWANIE | 4 |
Przykład 1: Wykonaj zapytanie, które wyszukuje maksymalną pensję pracowników z tabeli pracowników.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
W powyższym zapytaniu znajdujemy maksymalne wynagrodzenie z całej tabeli pracowników. Nazwaliśmy funkcję Max (wynagrodzenie) jako wynagrodzenie maksymalne. Wynagrodzenie zostanie wyświetlone jako nazwa kolumny po zwróceniu danych wyjściowych.
Wyjście:
MAKS. WYNAGRODZENIE |
65500 |
Jak widać, maksymalna pensja to 65500 z tabeli pracowników
Przykład 2: Wykonaj zapytanie, aby wyszukać w tabeli pracowników maksymalną pensję pracowników, których miejscem zamieszkania jest Bombaj.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
W powyższym zapytaniu nazwaliśmy max (salary) jako wynagrodzenie, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalną pensję pracownika w Bombaju i wyświetliliśmy nazwę miasta.
Wyjście:
MIASTO | WYNAGRODZENIE |
MUMBAJ | 60500 |
Jak widać, maksymalna pensja pracownika zamieszkałego w Bombaju to 60500
Przykład 3: Napisz zapytanie, aby znaleźć maksymalne wynagrodzenie pracowników z tabeli pracowników, których dział to Java.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
W powyższym zapytaniu mamy alias max (wynagrodzenie) jako max_salary, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalną pensję pracownika, którego działem jest Java i wyświetliliśmy nazwę działu.
Wyjście:
DZIAŁ | MAXIMUM_SALARY |
JAVA | 58500 |
Jak widać, maksymalna pensja pracownika działu Java to 58500
Przykład 4: Napisz zapytanie, aby znaleźć maksymalne wynagrodzenie pracowników, których dział zawiera jedną z list Oracle i FMW z tabeli pracowników.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
W powyższym zapytaniu użyliśmy aliasu max (wynagrodzenie), wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalną pensję pracownika, którego Działem jest Oracle i FMW.
Wyjście:
WYNAGRODZENIE |
65500 |
Przykład 5: Wykonaj zapytanie, aby wyszukać maksymalną pensję pracowników, których wynagrodzenie jest większe niż 55000 i miasto obejmuje Noida, Delhi z tabeli pracowników według miasta.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
W powyższym zapytaniu nazwaliśmy Max (wynagrodzenie) jako EMPLOYEE_SALARY, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalną pensję pracownika, którego pensja jest większa niż 55000. Ponadto miasto pracownika musi być jedną z nazw zawartych w parametrze city IN. Użyliśmy również klauzuli GROUP BY, po której następuje kolumna miasta. Miasto Noida zostanie zgrupowane w jedno miasto wszystkich pracowników, których miasto w Noida i znalazło pensję pracowników, i to samo podejście jest stosowane w przypadku miasta Delhi.
Wyjście:
MIASTO | EMPLOYEE_SALARY |
DELHI | 60000 |
NOIDA | 60000 |
Pracownik mieszka w mieście Delhi, maksymalna pensja to 60000, a pracownik mieszka w mieście Noida, maksymalna pensja to 60000.
Przykład 6: Wykonaj zapytanie, aby wyszukać maksymalne wynagrodzenie pracownika z tabeli pracownika. Miasta są unikalne dla pracowników pogrupowanych według działu.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Nazwaliśmy max (wynagrodzenie DISTINCT) jako wynagrodzenie_pracownika w powyższym zapytaniu, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalne wynagrodzenie pracownika z tabeli pracowników, biorąc pod uwagę unikalne miasta w kolumnie grupa według działu.
Wyjście:
DZIAŁ | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAJ | 60500 |
Przykład 7: Napisz zapytanie, aby znaleźć maksymalną pensję pracownika z tabeli pracownika unikalny dział grup pracowników według działu.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
W powyższym zapytaniu aliasowaliśmy max (wynagrodzenie DISTINCT) jako wynagrodzenie_pracownika, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalne wynagrodzenie pracownika z tabeli pracowników, biorąc pod uwagę unikalne działy pogrupowane według kolumny działu.
Wyjście:
DZIAŁ | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 65500 |
JAVA | 58500 |
WYROCZNIA | 65500 |
TESTOWANIE | 60500 |
Przykład 8: Wykonaj zapytanie, aby wyszukać maksymalne wynagrodzenie pracownika z grupy tabel Pracownik według działu, w którym wynagrodzenie max() jest większe niż 55000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
W powyższym zapytaniu nazwaliśmy max (salary) jako wynagrodzenie, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Znaleźliśmy maksymalną pensję pracownika z tabeli pracowników, a następnie pogrupowaliśmy według nazwy działu i użyliśmy warunku, w którym max() jest większe niż 55000.
Wyjście:
DZIAŁ | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAJ | 60500 |
Jak widać, tylko miasta z łącznymi zarobkami są większe niż 55000. Posiadanie klauzuli jest jak klauzula where. Posiadanie klauzuli jest używane, gdy chcemy zastosować jakiś warunek do funkcji agregującej. Użyliśmy klauzuli having tylko wtedy, gdy użyliśmy funkcji agregującej w zapytaniu.
Przykład 9: Napisz zapytanie, aby znaleźć maksymalną pensję pracownika z grupą laptopów przez Departament.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
W powyższym zapytaniu nazwaliśmy max (salary) jako wynagrodzenie, wyświetlane jako nazwa kolumny po zwróceniu danych wyjściowych. Wyjaśnienie powyższego zapytania, Pierwsze podzapytanie zostanie wykonane (SELECT EMPLOYEEID FROM LAPTOP); w rezultacie otrzymamy identyfikatory pracowników, w tym wartość null. Po wykonaniu podzapytania zostanie wykonane zapytanie główne SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (wyjście podzapytania). W operatorze IN zapytania głównego znajduje się id pracownika, który jest wyprowadzany z podzapytania zgodnie z operatorem IN. Otrzymamy nasz ostateczny wynik, czyli pogrupowanie według nazwy działu.
Wyjście:
DZIAŁ | WYNAGRODZENIE |
C# | 60000 |
JAVA | 58500 |
WYROCZNIA | 60000 |
TESTOWANIE | 55500 |