Ola boa tarde,
Tenho o banco de dados mysql e quero exibir os números que mais se repetem, mais estou apanhando no sql, alguém com mais experiência para ajudar, ex:
Tenho os campos:
N1 N2 N3 N4 N5 N6
quero exibir o número que mais se repete no campo: N1, N2,N3,N4…
1 curtida
Basta usar o count com having:
SELECT numero, count(*) FROM tabela GROUP BY numero HAVING count(*) > 5 -- (número mínimo de vezes que deve se repetir)
ou
SELECT count(num) FROM (SELECT numero, count(*) as num FROM tabela GROUP BY numero) dt
então neste caso ficaria assim?
SELECT N1,N2,N3,N3,N6,N6, count() FROM tabela GROUP BY N1 HAVING count() > 1
SELECT MAX(quantidade) FROM (SELECT count(N1) as quantidade FROM tabela GROUP BY N1),
Isso vai resolver apenas para um caso, pois você precisa agrupar para saber quantas vezes um número se repete, e depois selecionar o seu maior.
Você consegue fazer para todos em uma única consulta, mas vai ficar algo monstruoso, creio que deva ter uma forma mais limpa de se fazer isso…
Entendi, para um caso apenas blz, sem problemas, o problema é para fazer para todos em uma única consulta, é neste ponto que ainda n consegui resolver…
Se a solucao dele deu certo pra 1 campo, basta fazer o mesmo para os outros campos e ter um Select geral por cima. Como sua estrutura não está bem modelada, o Select vai ficar feio mesmo como ele falou.
SELECT
(
SELECT do n1..
) as n1,
(
SELECT do n2..
) as n2,
Etc..
Entendi, vou implementar e testar…