SQL para trazer o estado que possui mais cidades

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Hernani
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 01 Fev 2008 10:41 am
Localização: PR

Tenho uma table de de estados(UF) e outra de cidades.

Selecionar tudo

SELECT COUNT(*)
FROM TBLCIDADES
WHERE UF = 'PR'
com esse select eu consigo saber quantas cidades tem no PR.

Agora gostaria de saber um select para trazer o estado que possua a maior quantidade cidades.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai Hernani, beleza??

segue ai um exemplo..

Selecionar tudo

SELECT *
  FROM (SELECT   COUNT (1) qt, a.estado
            FROM tab_cidades a
        GROUP BY a.estado
        ORDER BY 1 DESC)
 WHERE ROWNUM <= 1
[]'s!!
Hernani
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 01 Fev 2008 10:41 am
Localização: PR

E aí Tineks, beleza.

Só não entendi a ultima linha do seu código WHERE ROWNUM <= 1
esse ROWNUM
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Esse ROWNUM, só te traz 1 linha.
Como está ordenado DESC, ele automaticamente te traz o maior valor.
Faça um teste, retire esta linha e veja o que ocorre.

Qualquer coisa, manda ai.
Hernani
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 01 Fev 2008 10:41 am
Localização: PR

deve ser particularidade do oracle, desculpa ai se for. É que eu to usando o mysql entrei nesse forum porque aqui as cosias são mais rápidas. muito obrigado. bons feriados pra garela....
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Isso mesmo brother.
Mais especificamente uma PSEUDOCOLUNA.
Assim como ROWID, DUAL... por ai vai.. rs...
qualquer coisa, manda ai.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Talves no mySQL exista alguma coisa parecida com o o Sql Server.. no sql server o comando equivalente ao rownum é o TOP, no caso TOP 1 traz somente a primeira linha, top 2 as 2 primeiras e assim vai.. :D

[]s'!!!
Avatar do usuário
alef
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 119
Registrado em: Ter, 06 Nov 2007 2:45 pm
Localização: Patos de Minas - MG
Alexandre Matos
Patos de Minas - MG
Do interior de Minas para o resto do Mundo

no mysql usa LIMIT

Selecionar tudo

$sql LIMIT 0,15 -- RETORNA 15 primeiros resultados
$sql LIMIT 16,15 --- RETORNA os proximos 15 resultados a contanto com o 16

:-o


.
ALEX
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Sex, 08 Fev 2008 12:42 pm
Localização: DIADEMA,SP

FAÇA ISSO QUE VAI FUNCIONAR

Selecionar tudo

SELECT SA.A1_EST,

	(SELECT COUNT(A1.A1_MUN) FROM SA1010 A1
	WHERE A1.D_E_L_E_T_ <> '*'
	AND A1.A1_EST = SA.A1_EST
	GROUP BY A1.A1_MUN)


 FROM SA1010 SA
WHERE SA.D_E_L_E_T_ <> '*'
GROUP BY SA.A1_EST
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes