Listar apenas as 10 maiores cidades com clientes cadastrados
Possuo duas tabelas "cidades" e "clientes". A tabela cidades possui (codcidade, nomecidade, uf) a clientes (codcliente, nomecliente, codcidade). Preciso listar as 10 cidades com mais clientes cadastrados.
CIDADES (CODCIDADE,NOMECIDADE,UF) values (''277'',''SAO FRANCISCO DE PAU'',''RS''); (CODCIDADE,NOMECIDADE,UF) values (''278'',''SAO FRANCISCO DO SUL'',''SC''); (CODCIDADE,NOMECIDADE,UF) values (''279'',''SAO GABRIEL'',''RS'');
CLIENTES (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''863'',''DARK AMERICAS LLC'',''379''); (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''864'',''MARCELO AUGUSTO KRUGER PAGEL'',''289''); (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''865'',''ALEX SANDRO BARBOSA SOARES'',''97'');
CIDADES (CODCIDADE,NOMECIDADE,UF) values (''277'',''SAO FRANCISCO DE PAU'',''RS''); (CODCIDADE,NOMECIDADE,UF) values (''278'',''SAO FRANCISCO DO SUL'',''SC''); (CODCIDADE,NOMECIDADE,UF) values (''279'',''SAO GABRIEL'',''RS'');
CLIENTES (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''863'',''DARK AMERICAS LLC'',''379''); (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''864'',''MARCELO AUGUSTO KRUGER PAGEL'',''289''); (CODCLIENTE,NOMECLIENTE,CODCIDADE) values (''865'',''ALEX SANDRO BARBOSA SOARES'',''97'');
Paola Santos
Curtidas 1
Melhor post
Emerson Nascimento
12/11/2018
algo assim:
select top 10 cid.codcidade, cid.nomecidade, cid.uf, count(*) totclientes from cidades cid inner join clientes cli on cli.codcidade = cid.codcidade group by cid.codcidade, cid.nomecidade, cid.uf order by count(*) desc
GOSTEI 3
Mais Respostas
Paola Santos
12/11/2018
O código funciona porém não resulta apenas nos 10 primeiros, todas as cidades aparecem. E o top 10 não funciona aparece o erro "palavra-chave FROM não localizada onde esperada".
GOSTEI 0
Emerson Nascimento
12/11/2018
Vai depender do banco de dados.
No SQLServer
No Firebird
No MySQL
No SQLServer
select top 10 cid.codcidade, cid.nomecidade, cid.uf, count(*) totclientes from cidades cid inner join clientes cli on cli.codcidade = cid.codcidade group by cid.codcidade, cid.nomecidade, cid.uf order by count(*) desc
No Firebird
select first 10 cid.codcidade, cid.nomecidade, cid.uf, count(*) totclientes from cidades cid inner join clientes cli on cli.codcidade = cid.codcidade group by cid.codcidade, cid.nomecidade, cid.uf order by count(*) desc
No MySQL
select cid.codcidade, cid.nomecidade, cid.uf, count(*) totclientes from cidades cid inner join clientes cli on cli.codcidade = cid.codcidade group by cid.codcidade, cid.nomecidade, cid.uf order by count(*) desc limit 10
GOSTEI 0
Paola Santos
12/11/2018
Uso o oracle
GOSTEI 0
Emerson Nascimento
12/11/2018
No Oracle
select * from
( select
cid.codcidade, cid.nomecidade, cid.uf, count(*) totclientes
from cidades cid
inner join clientes cli on cli.codcidade = cid.codcidade
group by cid.codcidade, cid.nomecidade, cid.uf
order by count(*) desc )
rownum < 11
GOSTEI 0