o que devo fazer se quiser selecionar outros campos também em 'minha_tabela'? Em outras palavras, outro valor;
grep
7
e se mais de um valor parecer o mesmo número de vezes (que é máximo)? Neste caso, se três também apareceram duas vezes? LIMIT 1 irá mostrar apenas um registro
mustafa1993
1
@ mustafa1993SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
Ahmed Syed
por que não funciona quando adiciono WHERE 'value_occurrence' = 1?
swisswiss
1
@swisswiss você deve usar em HAVINGvez de WHEREneste caso.
Eu não sabia que você poderia usar COUNT(*)diretamente no ORDER BY. Eu sabia que havia algumas restrições em relação a GROUP BY/ HAVINGe colunas agregadas e sempre achei que isso não funcionaria.
Mihai Stancu 02/09/12
21
Vamos considerar o nome da tabela como tblpersone o nome da coluna como city. Quero recuperar a cidade mais repetida da coluna da cidade:
select city,count(*)as nor from tblperson
groupby city
having count(*)=(select max(nor)from(select city,count(*)as nor from tblperson groupby city) tblperson)
Você também precisa mover a função COUNT para a seção ORDER BY para evitar o seguinte erro: Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS
Saba Jamalian
1
Supondo que a tabela seja ' SalesLT.Customer' e a coluna que você está tentando descobrir seja ' CompanyName' e AggCompanyNameé um alias.
Select CompanyName, Count(CompanyName)as AggCompanyName from SalesLT.Customer
groupby CompanyName
OrderBy Count(CompanyName)Desc;
Respostas:
Substitua
column
emy_table
. Aumente1
se você deseja ver osN
valores mais comuns da coluna.fonte
SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
WHERE 'value_occurrence' = 1
?HAVING
vez deWHERE
neste caso.Tente algo como:
fonte
COUNT(*)
diretamente noORDER BY
. Eu sabia que havia algumas restrições em relação aGROUP BY
/HAVING
e colunas agregadas e sempre achei que isso não funcionaria.Vamos considerar o nome da tabela como
tblperson
e o nome da coluna comocity
. Quero recuperar a cidade mais repetida da coluna da cidade:Aqui
nor
está um nome alternativo.fonte
A consulta abaixo parece funcionar bem para mim no banco de dados do SQL Server:
Resultado:
fonte
Para uso com o SQL Server.
Como não há suporte ao comando limit nisso.
Você pode usar o comando top 1 para encontrar o valor máximo de ocorrência na coluna específica nesse caso (valor)
fonte
Supondo que a tabela seja '
SalesLT.Customer
' e a coluna que você está tentando descobrir seja 'CompanyName
' eAggCompanyName
é um alias.fonte
Se você não pode usar LIMIT ou LIMIT, não é uma opção para sua ferramenta de consulta. Você pode usar "ROWNUM", mas precisará de uma subconsulta:
fonte
ROWNUM
LIMIT 1
; sintaxe é mostrada na resposta aceita.Se você possui uma coluna de ID e deseja encontrar a categoria mais repetitiva de outra coluna para cada ID, pode usar a consulta abaixo,
Tabela:
Inquerir:
Resultado:
fonte
Uma maneira que eu gosto de usar é:
selecionar ,CONTAGEM() como VAR1 de Table_Name
agrupar por
encomendar por VAR1 desc
limite 1
fonte