Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
Tenho 2 tabelas:
TABELA FOTOS COM OS CAMPOS: NOME, USUARIO, LUGAR
TABELA USUARIOS COM OS CAMPOS: NOME
Preciso fazer um ranking dos usuarios, contabilizado pela quantidade de fotos de cada usuário.
Alguém teria uma luz da melhor maneira de fazer ?
Grato
Eu estudei e cheguei em uma consulta, mais ou menos assim :
SELECT usuario, COUNT(*)
FROM fotos
GROUP BY usuario;
Mas a questão é que neste caso ele iria exibir o ranking completo, e eu só preciso exibir o ranking individual, por pessoa.
Tentei utilizar assim:
SELECT usuario, COUNT(*)GROUP BY usuario WHERE usuario = idusuario;
Mas não obtive muito sucesso.
GratoRanking individual !?
Exibir somente a posição do Ranking do usuário "x".
Vai ter uma página com informações sobre o o usuário e nela vou colocar " Bem vindo usuário X, sua posição no ranking é ...."
Entendeu ?
tente
select *
from
(
select @contador := @contador + 1 AS ordem,
usuario
from
(
SELECT usuario, COUNT(*) qtd
FROM fotos
GROUP BY usuario
order by COUNT(*) desc
) virtual ) virtual2
where usuario = '...'
vide também
[https://pt.stackoverflow.com/questions/43888/numeração-sequencial-dos-resultados-de-uma-query](https://pt.stackoverflow.com/questions/43888/numera%C3%A7%C3%A3o-sequencial-dos-resultados-de-uma-query)Obrigado...Vou ter que dar uma estudada porque foi muito além do meu conhecimento, principalmente porque tenho que aplicar em PDO.
Qual seria a variável, nesta consulta, que retornaria a posição ? $ordem?
Mas obrigado!
Não sei a variável , apenas lembrei de um tópico em que dei uma sugestão para Oracle , mas no Oracle é bem mais simples.
Mas vale a ideia básica
Obrigado!!
Select com JOIN , SUM e GROUP BY ordenando o total de forma descendente