La fonction SQL Max() est une fonction d'agrégation en SQL. Cette fonction renvoie les valeurs supérieures dans la condition. La condition peut être un nombre ou une expression de chaîne.
La syntaxe de la fonction select max :
SELECT MAX(column_name) FROM table_name WHERE conditions;
Plongeons en profondeur dans SQL SELECT MAX.
Considérez les tables déjà existantes, qui contiennent les données suivantes :
Nom de la table :Employés
ID EMPLOYEE | FIRST_NAME | LAST_NAME | SALAIRE | VILLE | DÉPARTEMENT | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOÏDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGAR | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | Bombay | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | Bombay | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | Bombay | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOÏDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Exemple 1 : Exécutez une requête qui recherche le salaire maximum des employés dans la table des employés.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
Dans la requête ci-dessus, nous trouvons le salaire maximum de toute la table des employés. Nous avons nommé la fonction Max (salaire) salaire max. Le salaire sera affiché comme nom de colonne lorsque la sortie sera renvoyée.
Sortie :
SALAIRE MAXIMAL |
65 500 |
Comme vous pouvez le voir, le salaire maximum est de 65500 dans la table des employés
Exemple 2 : Exécutez une requête pour rechercher le salaire maximum des employés dont la ville de résidence est Mumbai à partir de la table des employés.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
Nous avons nommé max (salaire) comme salaire dans la requête ci-dessus, affiché comme nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum d'un employé à Bombay et affiché le nom de la ville.
Sortie :
VILLE | SALAIRE |
Bombay | 60500 |
Comme vous pouvez le voir, le salaire maximum d'un employé qui réside dans la ville de Mumbai est de 60500
Exemple 3 : Écrivez une requête pour trouver le salaire maximum des employés à partir de la table des employés des employés dont le service est Java.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
Dans la requête ci-dessus, nous avons alias max (salaire) en tant que maximum_salary, affiché en tant que nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum d'un employé dont le département est Java et affiché le nom du département.
Sortie :
DÉPARTEMENT | MAXIMUM_SALARY |
JAVA | 58500 |
Comme vous pouvez le voir, le salaire maximum d'un employé du département Java est de 58500
Exemple 4 : Écrivez une requête pour trouver le salaire maximum des employés dont le département comprend l'une des listes est Oracle et FMW à partir de la table des employés.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Nous avons alias max (salaire) dans la requête ci-dessus, affiché sous forme de nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum d'un employé dont le département est Oracle et FMW.
Sortie :
SALAIRE |
65 500 |
Exemple 5 : Exécutez une requête pour rechercher le salaire maximum des employés dont le salaire est supérieur à 55 000 et dont la ville comprend Noida, Delhi à partir du groupe de tables des employés par ville.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
Nous avons nommé Max (salaire) EMPLOYEE_SALARY dans la requête ci-dessus, affiché sous forme de nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum d'un employé dont le salaire est supérieur à 55000. De plus, la ville de l'employé doit être l'un des noms inclus dans le paramètre city IN. Nous avons également utilisé la clause GROUP BY suivie de la colonne city. La ville de Noida sera regroupée en une seule ville de tous les employés dont la ville est à Noida et a trouvé le salaire des employés, et la même approche est utilisée pour la ville de Delhi.
Sortie :
VILLE | EMPLOYEE_SALARY |
DELHI | 60000 |
NOIDA | 60000 |
L'employé réside dans la ville de Delhi, le salaire maximum est de 60 000 et l'employé réside dans la ville de Noida, le salaire maximum est de 60 000.
Exemple 6 : Exécutez une requête pour rechercher le salaire maximum des employés dans la table des employés. Les villes sont uniques au groupe d'employés par département.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Nous avons nommé max (salaire DISTINCT) comme Employee_salary dans la requête ci-dessus, affiché en tant que nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum des employés à partir du tableau des employés en tenant compte des villes uniques dans une colonne groupe par département.
Sortie :
DÉPARTEMENT | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
Bombay | 60500 |
Exemple 7 : Rédigez une requête pour trouver le salaire maximum d'un employé dans la table des employés, département unique du groupe d'employés par département.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Dans la requête ci-dessus, nous avons alias max (salaire DISTINCT) en tant que Employee_salary, affiché en tant que nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum des employés à partir du tableau des employés en tenant compte des départements uniques regroupés par colonne de département.
Sortie :
DÉPARTEMENT | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 65500 |
JAVA | 58500 |
ORACLE | 65500 |
TEST | 60500 |
Exemple 8 : Exécutez une requête pour rechercher le salaire maximum de l'Employé dans le groupe de tables de l'Employé par Département où le salaire max() est supérieur à 55 000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
Nous avons nommé max (salaire) comme salaire dans la requête ci-dessus, affiché comme nom de colonne lorsque la sortie est renvoyée. Nous avons trouvé le salaire maximum des employés à partir du tableau des employés suivi du groupe par nom de service et utilisé avec une condition où max() est supérieur à 55000.
Sortie :
DÉPARTEMENT | EMPLOYEE_SALARY |
NOIDA | 60000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
Bombay | 60500 |
Comme nous pouvons le voir, seules les villes dont les salaires globaux sont supérieurs à 55 000. Avoir une clause, c'est comme une clause where. Avoir une clause est utilisé lorsque nous voulons appliquer une condition à la fonction d'agrégation. Nous avons utilisé la clause having uniquement lorsque nous avons utilisé la fonction d'agrégation dans la requête.
Exemple 9 : Rédigez une requête pour trouver le salaire maximum d'un employé avec un groupe d'ordinateurs portables par département.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Nous avons nommé max (salaire) comme salaire dans la requête ci-dessus, affiché comme nom de colonne lorsque la sortie est renvoyée. Explication de la requête ci-dessus, la première sous-requête sera exécutée (SELECT EMPLOYEEID FROM LAPTOP); en conséquence, nous obtiendrons les identifiants des employés, y compris la valeur nulle. Une fois la sous-requête exécutée, la requête principale sera exécutée SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (sortie de la sous-requête). Dans l'opérateur IN de la requête principale, il y a un identifiant d'employé, qui est sorti de la sous-requête selon l'opérateur IN. Nous obtiendrons notre résultat final qui est le groupe par nom de département.
Sortie :
DÉPARTEMENT | SALAIRE |
C# | 60000 |
JAVA | 58500 |
ORACLE | 60000 |
TEST | 55500 |