Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valtinho2005

Consulta retornando id que mais aparece

Recommended Posts

Bom dia,

 

Preciso fazer uma consulta MYSQL no banco e pegar a seguintes informações.

 

Tenho uma tabela "LANCAMENTOS"

 

id lancamento userid categoriaid

1 sushi 1 1

2 teste 1 1

3 teste2 1 1

4 teste3 1 3

5 mercado 2 2

 

Bom ai esta a tabela, o que eu preciso?

 

Consulta SQL que me retorna que tenho 3 lançamentos do mesmo user id (será usado where id="$id") de mesma categoria.

 

Ou seja, estou montando uma pagina de estatística, neste sql é: Qual categoria é mais usada em lançamentos?

 

então quero procurar em lançamentos a categoria que mais aparece e me retornar "categoriaid"

 

Tentei explicar ao maximo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz uma seleção em cada categoria e grava o valor de cada uma em uma variável,

Depois você compara a maior entre elas e exibe.

 

SQL:

Select COUNT(categoriaid) from suaTabela WHERE categoriaid=1

 

Verifica maior Número:

 

<?php
 
$cat1 = 2;
$cat2 = 22;
 
echo max($cat1, $cat2);
 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só não estou certo da síntaxe do LIMIT

SELECT USERID,COUNT(*) QTD
FROM LANCAMENTOS
GROUP BY USERID
ORDER BY USERID
LIMIT 1,1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Só não estou certo da síntaxe do LIMIT

SELECT USERID,COUNT(*) QTD
FROM LANCAMENTOS
GROUP BY USERID
ORDER BY USERID
LIMIT 1,1

 

 

Cara, perfeito...Tirei o LIMIT, porque ele estava me retornando a primeira linha apenas, e nao era a que tinha mais registro.

Tirando o limite ele me retorno quantas vezes cada ID apareceria, exemplo:

 

contaid QTD

2 10

3 8

4 21

5 4

6 1

 

Agora como eu faço para selecionar o CONTAID 4, me baseando na QTD maior? consulta sql dentro desta? como fazer?

Ou seja, na hora de mostrar no site, quero mostrar assim:

 

A conta 4 é a mais movimentada, com 21 lançamentos!

 

Obrigado desde já a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"mosquei"

 

 

SELECT USERID,COUNT(*) QTD 
FROM LANCAMENTOS 
GROUP BY USERID 
ORDER BY COUNT(*) DESC 
LIMIT 1,1

 

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

"mosquei"

 

 

SELECT USERID,COUNT(*) QTD 
FROM LANCAMENTOS 
GROUP BY USERID 
ORDER BY COUNT(*) DESC 
LIMIT 1,1

 

 


Me retornou 2 - 10,

deveria retornar 4 -21

 

 

Consegui,

 

 

 

alterei o limite para 0,1 ao invez de 1,1

funcionou

SELECT contaid, COUNT( * ) QTD
FROM lancamentos
GROUP BY contaid
ORDER BY COUNT( * ) DESC 
LIMIT 0 , 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.