¿Qué debo hacer si quiero seleccionar otros campos también de 'my_table'? En otras palabras, otro valor;
grep
77
¿Qué pasa si más de un valor aparece el mismo número de veces (que es máximo)? En este caso, si tres también aparecieron dos veces? LÍMITE 1 mostrará solo un registro
mustafa1993
1
@ mustafa1993SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
Ahmed Syed
¿Por qué no funciona cuando agrego WHERE 'value_occurrence' = 1?
swisswiss
1
@swisswiss debe usar en HAVINGlugar de WHEREen este caso.
No sabía que podías usar COUNT(*)directamente en el ORDER BY. Sabía que había algunas restricciones con respecto a las columnas agregadas y GROUP BY/ HAVINGy siempre supuse que eso no funcionaría.
Mihai Stancu
21
Consideremos el nombre de la tabla como tblpersony el nombre de la columna como city. Quiero recuperar la ciudad más repetida de la columna de la ciudad:
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)
También debe mover la función COUNT a la sección ORDER BY para evitar el siguiente error: solo se puede especificar una expresión en la lista de selección cuando la subconsulta no se introduce con EXISTS
Saba Jamalian
1
Suponiendo que la tabla es " SalesLT.Customer" y la columna que está tratando de averiguar es " CompanyName" y AggCompanyNamees un alias.
Select CompanyName, Count(CompanyName)as AggCompanyName from SalesLT.Customer
groupby CompanyName
OrderBy Count(CompanyName)Desc;
Respuestas:
Reemplazar
column
ymy_table
. Aumente1
si desea ver losN
valores más comunes de la columna.fuente
SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;
WHERE 'value_occurrence' = 1
?HAVING
lugar deWHERE
en este caso.Intenta algo como:
fuente
COUNT(*)
directamente en elORDER BY
. Sabía que había algunas restricciones con respecto a las columnas agregadas yGROUP BY
/HAVING
y siempre supuse que eso no funcionaría.Consideremos el nombre de la tabla como
tblperson
y el nombre de la columna comocity
. Quiero recuperar la ciudad más repetida de la columna de la ciudad:Aquí
nor
hay un nombre de alias.fuente
La consulta a continuación parece funcionar bien para mí en la base de datos de SQL Server:
Resultado:
fuente
Para usar con SQL Server.
Como no hay soporte de comando de límite en eso.
En este caso, puede usar el comando top 1 para encontrar el valor máximo en la columna en particular (valor)
fuente
Suponiendo que la tabla es "
SalesLT.Customer
" y la columna que está tratando de averiguar es "CompanyName
" yAggCompanyName
es un alias.fuente
Si no puede usar LIMIT o LIMIT no es una opción para su herramienta de consulta. Puede usar "ROWNUM" en su lugar, pero necesitará una subconsulta:
fuente
ROWNUM
LIMIT 1
lugar; La sintaxis se muestra en la respuesta aceptada.Si tiene una columna de ID y desea encontrar la categoría más repetitiva de otra columna para cada ID, puede usar la consulta a continuación,
Mesa:
Consulta:
Resultado:
fuente
Una forma que me gusta usar es:
Seleccione ,CONTAR() como VAR1 de Table_Name
agrupar por
ordenar por VAR1 desc
límite 1
fuente