AGRUPAR E TRAZER NÚMERO LIMITADOS POR GRUPOS
Olá,
Tenho a seguinte questão:
Em uma tabela com os campos: nome, telefone, bairro.
preciso que a query me retorne 5 pessoas de cada bairro.
Obrigado pela ajuda.
Tenho a seguinte questão:
Em uma tabela com os campos: nome, telefone, bairro.
preciso que a query me retorne 5 pessoas de cada bairro.
Obrigado pela ajuda.
José Menezes
Curtidas 0
Respostas
Allan Monteiro
31/10/2017
Será que assim dá certo? Rs
SELECT
A.NOME,
A.TELEFONE,
A.BAIRRO,
COUNT(A.BAIRRO)
FROM TABELA A
GROUP BY A.NOME,
A.TELEFONE,
A.BAIRRO
HAVING COUNT(A.BAIRRO) = 5;
SELECT
A.NOME,
A.TELEFONE,
A.BAIRRO,
COUNT(A.BAIRRO)
FROM TABELA A
GROUP BY A.NOME,
A.TELEFONE,
A.BAIRRO
HAVING COUNT(A.BAIRRO) = 5;
GOSTEI 0
José Menezes
31/10/2017
Não. desta forma trouxe apenas as mesmas pessoas que moram em 5 bairros diferentes (rs). Eu preciso que me traga cinco pessoas, independente da ordem, pode ser por nome mesmo, mas quero quero cinco pessoas de TODOS os bairros. Assim, se eu tiver 10 bairros, a consulta tem que me retornar 50 pessoas.
GOSTEI 0
Paulo Santos
31/10/2017
Bom dia José, pelo tempo que postou a duvida acredito que já tenha conseguido solucionar.
Mas segue um exemplo.
Pelo que entendi, vc precisa de no máximo 5 pessoas de cada bairro que estão cadastras na mesma tabela, correto?
Se for esse o caso esse exemplo vai te retornar o que precisa, mas se for de tabelas distintas basta alterar a consulta dentro do outer apply que vai funcionar.
SELECT distinct
TBL01.Bairro AS Bairro
,'---' AS [ ]
,TBL02.*
FROM Tabela01 AS TBL01
OUTER APPLY
(
SELECT TOP 05
*
FROM Tabela01 AS TBL_SUB
WHERE TBL01.Bairro = TBL_SUB.Bairro
) AS TBL02
Espero ter ajudado
=)
Mas segue um exemplo.
Pelo que entendi, vc precisa de no máximo 5 pessoas de cada bairro que estão cadastras na mesma tabela, correto?
Se for esse o caso esse exemplo vai te retornar o que precisa, mas se for de tabelas distintas basta alterar a consulta dentro do outer apply que vai funcionar.
SELECT distinct
TBL01.Bairro AS Bairro
,'---' AS [ ]
,TBL02.*
FROM Tabela01 AS TBL01
OUTER APPLY
(
SELECT TOP 05
*
FROM Tabela01 AS TBL_SUB
WHERE TBL01.Bairro = TBL_SUB.Bairro
) AS TBL02
Espero ter ajudado
=)
GOSTEI 0