¿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
columnymy_table. Aumente1si desea ver losNvalores más comunes de la columna.fuente
SELECT * FROM my_table GROUP BY value ORDER BY count(*) DESC;WHERE 'value_occurrence' = 1?HAVINGlugar deWHEREen 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/HAVINGy siempre supuse que eso no funcionaría.Consideremos el nombre de la tabla como
tblpersony el nombre de la columna comocity. Quiero recuperar la ciudad más repetida de la columna de la ciudad:Aquí
norhay 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" yAggCompanyNamees 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
ROWNUMLIMIT 1lugar; 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