A função SQL Max() é uma função agregada em SQL. Esta função retorna os valores que são maiores na condição. A condição pode ser um número ou pode ser uma expressão de string.
A sintaxe para a função select max:
SELECT MAX(column_name) FROM table_name WHERE conditions;
Vamos mergulhar fundo no SQL SELECT MAX.
Considere as tabelas já existentes, que possuem os seguintes dados:
Nome da tabela:Funcionários
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | CIDADE | DEPARTAMENTO | GERENTE |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIQUIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRAQUI | 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 | QUERER | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTE | 4 |
4002 | ASHWINI | BOLSA | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DÉLHI | ORACLE | 1 |
5001 | ARQUIVO | SHARMA | 55500 | DÉLHI | TESTE | 4 |
Exemplo 1: Execute uma consulta que pesquisa o salário máximo dos funcionários na tabela de funcionários.
SELECT MAX (SALARY) AS 'MAXSALARY' FROM EMPLOYEES;
Na consulta acima, encontramos o salário máximo de toda a tabela de funcionários. Chamamos a função Max (salário) de salário máximo. O salário será exibido como o nome da coluna quando a saída for retornada.
Saída:
SALÁRIO MÁXIMO |
65500 |
Como você pode ver, o salário máximo é 65500 da tabela dos funcionários
Exemplo 2: Execute uma consulta para pesquisar o salário máximo de funcionários cuja cidade residente é Mumbai na tabela de funcionários.
SELECT CITY, MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'MUMBAI';
Nomeamos max (salário) como salário na consulta acima, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo de um funcionário em Mumbai e exibimos o nome da cidade.
Saída:
CIDADE | SALÁRIO |
MUMBAI | 60500 |
Como você pode ver, o salário máximo de um funcionário que reside na cidade de Mumbai é de 60.500
Exemplo 3: Escreva uma consulta para encontrar o salário máximo dos funcionários na tabela de funcionários cujo Departamento é Java.
SELECT DEPARTMENT, MAX(SALARY) AS 'MAXIMUM_SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'JAVA';
Na consulta acima, usamos o alias max (salary) como maximum_salary, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo de um funcionário cujo Departamento é Java e exibimos o nome do departamento.
Saída:
DEPARTAMENTO | MAXIMUM_SALARY |
JAVA | 58500 |
Como você pode ver, o salário máximo de um funcionário do departamento de Java é 58.500
Exemplo 4: Escreva uma consulta para encontrar o salário máximo dos funcionários cujo Departamento inclui uma das listas Oracle e FMW da tabela de funcionários.
SELECT MAX(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Temos o alias max (salary) na consulta acima, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo de um funcionário cujo Departamento é Oracle e FMW.
Saída:
SALÁRIO |
65500 |
Exemplo 5: Execute uma consulta para pesquisar o salário máximo de funcionários cujo salário é maior que 55.000 e a cidade inclui Noida, Delhi do grupo de tabela de funcionários por cidade.
SELECT CITY, MAX(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 55000 AND CITY IN ('NOIDA', 'DELHI') GROUP BY CITY;
Nomeamos Max (salary) como EMPLOYEE_SALARY na consulta acima, exibido como um nome de coluna quando a saída é retornada. Encontramos o salário máximo de um funcionário cujo salário é maior que 55.000. Além disso, a cidade do funcionário deve ser um dos nomes incluídos no parâmetro cidade IN. Também usamos a cláusula GROUP BY seguida da coluna cidade. A cidade de Noida será agrupada em uma cidade de todos os funcionários cuja cidade em Noida e encontrou o salário dos funcionários, e a mesma abordagem é usada para a cidade de Delhi.
Saída:
CIDADE | SALÁRIO_FUNCIONÁRIO |
DÉLHI | 60.000 |
NOIDA | 60.000 |
O funcionário reside na cidade de Delhi, o salário máximo é 60.000 e o funcionário reside na cidade de Noida, o salário máximo é 60.000.
Exemplo 6: Execute uma consulta para pesquisar o salário máximo do funcionário na tabela Employee's cities são exclusivas do grupo de funcionários por departamento.
SELECT CITY, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Nomeamos max (DISTINCT salário) como Employee_salary na consulta acima, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo do funcionário na tabela de funcionários considerando cidades únicas em uma coluna de grupo por departamento.
Saída:
DEPARTAMENTO | SALÁRIO_FUNCIONÁRIO |
NOIDA | 60.000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Exemplo 7: Escreva uma consulta para encontrar o salário máximo do funcionário da tabela Employee's unique department of employees group by Department.
SELECT DEPARTMENT, MAX(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Na consulta acima, usamos o alias max (DISTINCT salário) como Employee_salary, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo do funcionário na tabela de funcionários considerando departamentos únicos agrupados por coluna de departamento.
Saída:
DEPARTAMENTO | SALÁRIO_FUNCIONÁRIO |
C# | 60.000 |
FMW | 65500 |
JAVA | 58500 |
ORACLE | 65500 |
TESTE | 60500 |
Exemplo 8: Execute uma consulta para pesquisar o salário máximo do Funcionário do grupo de tabelas do Funcionário pelo Departamento onde max() salário é maior que 55000.
SELECT CITY, MAX(SALARY) AS SALARY FROM EMPLOYEES GROUP BY DEPARTMENT HAVING MAX(SALARY) > 55000;
Nomeamos max (salário) como salário na consulta acima, exibido como nome da coluna quando a saída é retornada. Encontramos o salário máximo do funcionário na tabela de funcionários seguido de grupo pelo nome do departamento e usado com uma condição em que max() é maior que 55000.
Saída:
DEPARTAMENTO | SALÁRIO_FUNCIONÁRIO |
NOIDA | 60.000 |
JAIPUR | 65500 |
PUNE | 58500 |
PUNE | 65500 |
MUMBAI | 60500 |
Como podemos ver, apenas as cidades com salários agregados são maiores que 55.000. Ter uma cláusula é como a cláusula where. Ter uma cláusula é usado quando queremos aplicar alguma condição à função agregada. Usamos a cláusula tendo apenas quando usamos a função agregada na consulta.
Exemplo 9: Escreva uma consulta para encontrar o salário máximo de um funcionário com um grupo de laptops pelo Departamento.
SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Nomeamos max (salário) como salário na consulta acima, exibido como nome da coluna quando a saída é retornada. Explicação da consulta acima, a primeira subconsulta será executada (SELECT EMPLOYEEID FROM LAPTOP); como resultado, obteremos os IDs dos funcionários, incluindo o valor nulo. Após a execução da subconsulta, a consulta principal será executada SELECT DEPARTMENT, MAX(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (saída da subconsulta). No operador IN da consulta principal, há um id de funcionário, que é gerado a partir da subconsulta de acordo com o operador IN. Obteremos nosso resultado final que é o grupo pelo nome do departamento.
Saída:
DEPARTAMENTO | SALÁRIO |
C# | 60.000 |
JAVA | 58500 |
ORACLE | 60.000 |
TESTE | 55500 |