Die Funktion SQL Max() ist eine Aggregatfunktion in SQL. Diese Funktion gibt die Werte zurück, die in der Bedingung größer sind. Die Bedingung kann eine Zahl oder ein Zeichenfolgenausdruck sein.
Die Syntax für die Select-Max-Funktion:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Lassen Sie uns tief in SQL SELECT MAX eintauchen.
Betrachten Sie die bereits vorhandenen Tabellen, die die folgenden Daten enthalten:
Tabellenname:Mitarbeiter
MITARBEITERID | FIRST_NAME | NACHNAME | GEHALT | STADT | ABTEILUNG | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NICHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUSCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SCHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOLD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUSCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Beispiel 1: Führen Sie eine Abfrage aus, die das maximale Gehalt der Mitarbeiter aus der Mitarbeitertabelle sucht.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
In der obigen Abfrage finden wir das maximale Gehalt aus der gesamten Mitarbeitertabelle. Wir haben die Funktion Max (Gehalt) als maximales Gehalt bezeichnet. Das Gehalt wird als Spaltenname angezeigt, wenn die Ausgabe zurückgegeben wird.
Ausgabe:
MAX GEHALT |
65500 |
Wie Sie sehen können, beträgt das maximale Gehalt 65500 aus der Mitarbeitertabelle
Beispiel 2: Führen Sie eine Abfrage aus, um das maximale Gehalt von Mitarbeitern mit Wohnort Mumbai in der Mitarbeitertabelle zu suchen.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
Wir haben in der obigen Abfrage max (Gehalt) als Gehalt benannt, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Gehalt eines Mitarbeiters in Mumbai gefunden und den Namen der Stadt angezeigt.
Ausgabe:
STADT | GEHALT |
MUMBAI | 60500 |
Wie Sie sehen können, beträgt das maximale Gehalt eines Mitarbeiters mit Wohnsitz in der Stadt Mumbai 60500
Beispiel 3: Schreiben Sie eine Abfrage, um das maximale Gehalt der Mitarbeiter aus der Mitarbeitertabelle der Mitarbeiter zu ermitteln, deren Abteilung Java ist.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
In der obigen Abfrage haben wir max (Gehalt) als maximum_salary aliased, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Gehalt eines Mitarbeiters gefunden, dessen Abteilung Java ist, und den Abteilungsnamen angezeigt.
Ausgabe:
ABTEILUNG | MAXIMUM_GEHALT |
JAVA | 58500 |
Wie Sie sehen, beträgt das Höchstgehalt eines Mitarbeiters aus der Java-Abteilung 58500
Beispiel 4: Schreiben Sie eine Abfrage, um das maximale Gehalt von Mitarbeitern zu finden, deren Abteilung eine der Listen enthält, nämlich Oracle und FMW, aus der Mitarbeitertabelle.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Wir haben in der obigen Abfrage den Alias max (Gehalt) verwendet, der als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Gehalt eines Mitarbeiters gefunden, dessen Abteilung Oracle und FMW ist.
Ausgabe:
GEHALT |
65500 |
Beispiel 5: Führen Sie eine Abfrage aus, um das maximale Gehalt von Mitarbeitern zu suchen, deren Gehalt über 55.000 liegt und deren Stadt Noida, Delhi umfasst, aus der Mitarbeitertabellengruppe nach Stadt.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
Wir haben Max (Gehalt) in der obigen Abfrage als EMPLOYEE_SALARY benannt, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Gehalt eines Mitarbeiters ermittelt, dessen Gehalt über 55000 liegt. Außerdem muss die Stadt des Mitarbeiters einer der Namen sein, die im IN-Parameter der Stadt enthalten sind. Wir haben auch die GROUP BY-Klausel gefolgt von der Stadtspalte verwendet. Die Stadt Noida wird in eine Stadt aller Angestellten gruppiert, deren Stadt in Noida liegt, und das Gehalt der Angestellten gefunden, und der gleiche Ansatz wird für die Stadt Delhi verwendet.
Ausgabe:
STADT | EMPLOYEE_SALARY |
DELHI | 60000 |
NOIDA | 60000 |
Der Mitarbeiter lebt in der Stadt Delhi, das maximale Gehalt beträgt 60000, und der Mitarbeiter lebt in der Stadt Noida, das maximale Gehalt beträgt 60000.
Beispiel 6: Führen Sie eine Abfrage aus, um das maximale Mitarbeitergehalt in der Mitarbeitertabelle zu suchen. Städte sind für die Mitarbeitergruppe nach Abteilung eindeutig.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
In der obigen Abfrage haben wir max (DISTINCT-Gehalt) als Employee_salary benannt, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Mitarbeitergehalt aus der Mitarbeitertabelle unter Berücksichtigung eindeutiger Städte in einer Gruppierung nach Abteilungsspalte ermittelt.
Ausgabe:
ABTEILUNG | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Beispiel 7: Schreiben Sie eine Abfrage, um das maximale Mitarbeitergehalt aus der Tabelle „Employee“ (eindeutige Abteilung der Mitarbeiter) nach Abteilung zu finden.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
In der obigen Abfrage haben wir max (DISTINCT-Gehalt) als Employee_salary aliased, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Mitarbeitergehalt aus der Mitarbeitertabelle unter Berücksichtigung eindeutiger Abteilungen, gruppiert nach Abteilungsspalte, ermittelt.
Ausgabe:
ABTEILUNG | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 65500 |
JAVA | 58500 |
ORACLE | 65500 |
TESTEN | 60500 |
Beispiel 8: Führen Sie eine Abfrage aus, um das maximale Gehalt des Mitarbeiters in der Tabellengruppe „Employee“ nach Abteilung zu suchen, wobei das max()-Gehalt größer als 55000 ist.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
Wir haben in der obigen Abfrage max (Gehalt) als Gehalt benannt, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Wir haben das maximale Mitarbeitergehalt aus der Mitarbeitertabelle gefunden, gefolgt von der Gruppe nach Abteilungsnamen und einer Bedingung, bei der max() größer als 55000 ist.
Ausgabe:
ABTEILUNG | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Wie wir sehen können, sind nur Städte mit Gesamtgehältern größer als 55000. Eine Klausel zu haben ist wie eine Where-Klausel. Eine Klausel zu haben wird verwendet, wenn wir eine Bedingung auf die Aggregatfunktion anwenden möchten. Wir haben die Having-Klausel nur verwendet, wenn wir die Aggregatfunktion in der Abfrage verwendet haben.
Beispiel 9: Schreiben Sie eine Abfrage, um das maximale Gehalt eines Mitarbeiters mit einer Laptop-Gruppe der Abteilung zu ermitteln.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Wir haben in der obigen Abfrage max (Gehalt) als Gehalt benannt, das als Spaltenname angezeigt wird, wenn die Ausgabe zurückgegeben wird. Erläuterung der obigen Abfrage, Erste Unterabfrage wird ausgeführt (SELECT EMPLOYEEID FROM LAPTOP); Als Ergebnis erhalten wir die Mitarbeiter-IDs, einschließlich des Nullwerts. Nachdem die Unterabfrage ausgeführt wurde, wird die Hauptabfrage ausgeführt SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (Ausgabe der Unterabfrage). Im IN-Operator der Hauptabfrage befindet sich eine Mitarbeiter-ID, die von der Unterabfrage entsprechend dem IN-Operator ausgegeben wird. Wir erhalten unser Endergebnis, nämlich die Gruppe nach Abteilungsnamen.
Ausgabe:
ABTEILUNG | GEHALT |
C# | 60000 |
JAVA | 58500 |
ORACLE | 60000 |
TESTEN | 55500 |