Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo top-n

Consulta Top-N SQL Server

Esse tipo de consulta é útil em situações onde precisamos encontrar, por exemplo, os N maiores ou menores dentro de determinado grupo, os funcionários mais bem pagos, os que vendem mais, as mercadorias menos vendidas e assim por diante. No SQL Server utilizamos o predicado TOP para recuperar um determinado número de registros e ordenamos a consulta com o ORDER BY. Baixe aqui o script com a criação da tabela e os inserts para o teste. No exemplo abaixo desejamos encontrar os três funcionários que ganham mais: SELECT TOP 3 NOM_FUNC NOME, SAL_FUNC SALARIO FROM FUNCIONARIOS ORDER BY SAL_FUNC DESC Agora desejamos encontrar os três funcionários que possuem os menores salários: SELECT TOP 3 NOM_FUNC NOME, SAL_FUNC SALARIO FROM FUNCIONARIOS ORDER BY SAL_FUNC Podemos perceber que ambos os códigos são idênticos, precisamos apenas mudar a ordem na cláusula ORDER BY.

Consulta Top-N Oracle

Esse tipo de consulta é útil em situações onde precisamos encontrar, por exemplo, os N maiores ou menores dentro de determinado grupo, os funcionários mais bem pagos, os que vendem mais, as mercadorias menos vendidas e assim por diante. Para conseguirmos isso no Oracle precisaremos implementar uma consulta interna (ou view em linha), que irá retornar todos os registros necessários, e na consulta externa iremos limitar a exibição num total desejado. Baixe aqui o script com a criação da tabela e os inserts para o teste. No exemplo abaixo desejamos encontrar os três funcionários que ganham mais: SELECT NOME, SALARIO FROM ( SELECT FU.NOM_FUNC NOME, FU.SAL_FUNC SALARIO FROM FUNCIONARIOS FU ORDER BY FU.SAL_FUNC DESC ) WHERE ROWNUM <= 3 Agora desejamos encontrar os três funcionários que possuem os menores salários: SELECT NOME, SALARIO FROM ( SELECT FU.NOM_FUNC NOME, FU.SAL_FUNC SALARIO FROM FUNCIONARIOS FU ORDER BY FU.SAL_FUNC ) WHERE ROWNUM <= 3 P