• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

TrymBeast

[MySQL] Valor mais repetido num campo da tabela

8 mensagens neste tópico

Olá!

Como faço para ver qual é o valor mais vezes repetido num determinado campo e que devolva o número de repetições desse valor.

Eu queria usar isso para fazer as estatísticas de acesso ao site, para poder dizer qual é o browser mais usado, etc..

Agradeço desde já a vossa ajuda!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que tens a função Max() que te devolve isso. Tipo:

Select Max(Campo)

From tabela

Algo do genero

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que tens a função Max() que te devolve isso. Tipo:

Select Max(Campo)

From tabela

Algo do genero

acho que nao é isso que ele pretende......

mas sim:

select contador. nome_browser, max(contador.num_browser)
from
(
Select   nome_browser,  Count(campo) as num_browser
from tabela
) as contador

pode haver 1 implementacao melhor..mas eu pensei assim...  :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tofas percebi tudo menos a parte do AS contador  e o as num_browser

tipo no num_browser á frente iria aparecer o resultado de count (campo) certo ?

o as contador é que ja n entendo a funcao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em MySql

Select count(*) total from tabela [where ....] group by campo order by total desc LIMIT 1;

Oracle

Select count(*) total from tabela where rownum=1 group by campo order by total desc;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tofas percebi tudo menos a parte do AS contador  e o as num_browser

tipo no num_browser á frente iria aparecer o resultado de count (campo) certo ?

o as contador é que ja n entendo a funcao

a palavra reservada AS significa que o que vem a seguir é um alias do nome real do campo.

Select campo as batatas from tabela  significa que o resultado serao batatas ao inves de campo.

Basicamente serve para mudar nomes de campo, tabelas, funções de grupo etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tofas percebi tudo menos a parte do AS contador  e o as num_browser

tipo no num_browser á frente iria aparecer o resultado de count (campo) certo ?

o as contador é que ja n entendo a funcao

a palavra reservada AS significa que o que vem a seguir é um alias do nome real do campo.

Select campo as batatas from tabela  significa que o resultado serao batatas ao inves de campo.

Basicamente serve para mudar nomes de campo, tabelas, funções de grupo etc.

isso mesmo e quando faço as contador

digo que o resultado /  tabela

SELECT  nome_browser,  Count(campo) AS num_browser

FROM tabela

vai ter o nome de contador ...  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PPL... atenção... o mysql só suporta subqueries a partir da versão 5, que ainda não está instalada na maior parte dos servidores.

epa... deixa ca ver...

pa...  tas a usar php? é que, uma vez que nao vais poder usar subqueries, seja melhor ideia usares mais do que um query.

um para pegares os valores distintos todos (usa a fincao distinct do mysql)

outro para contar o numero de ocorrencias de cada um (usa a funcao count do mysql)

poes tudo para dentro de um array php usando ciclos

e usas a funcao max do php para pegar o indice do MR BIG :D

pa... desculpa nao escrevi código... tou a cair de sono...

basicamente é usar o mysql_query e o mysql_fetch_array duas vezes com um ciclo extra para preencheres o teu array.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora