usar example como mysql sql group-by

example - having mysql



¿Qué significa la cláusula SQL "GROUP BY 1"? (6)

Además de agrupar por el nombre del campo, también puede agrupar por ordinal, o colocar el campo es.

Esto generalmente no se recomienda si se está agrupando en algo específico, ya que la estructura de la tabla / vista puede cambiar; además, es más difícil de leer (crédito: ). Sin embargo, si devuelve un conjunto único de algo, entonces está bien.

Alguien me envió una consulta SQL donde la cláusula GROUP BY consistía en la declaración: GROUP BY 1 .

Esto debe ser un error tipográfico ¿verdad? Ninguna columna recibe el alias 1. ¿Qué podría significar? ¿Tengo razón en suponer que esto debe ser un error tipográfico?


Eso significa grupo sql por primera columna en su cláusula de selección, siempre usamos este GROUP BY 1 junto con ORDER BY 1 , además usted también puede usar este GROUP BY 1,2,3.. , por supuesto, es conveniente para nosotros, pero necesita prestar atención a esa condición, el resultado puede no ser el que desea si alguien ha modificado sus columnas de selección y no se visualiza


Se agrupará por el primer campo en la cláusula de selección


Se agrupará por la posición de columna que coloque después de la cláusula group by.

por ejemplo, si ejecuta '' SELECT SALESMAN_NAME, SUM(SALES) FROM SALES GROUP BY 1 '', se SALESMAN_NAME por SALESMAN_NAME .

Un riesgo al hacer esto es si ejecuta '' Select * '' y, por alguna razón, recrea la tabla con columnas en un orden diferente, le dará un resultado diferente del esperado.


Significa agrupar en la primera columna independientemente de cómo se llame. Usted puede hacer lo mismo con ORDER BY .


SELECT account_id, open_emp_id ^^^^ ^^^^ 1 2 FROM account GROUP BY 1;

En la consulta anterior GROUP BY 1 refiere a la first column in select statement que es account_id .

También puede especificar en ORDER BY .

Nota: El número en ORDER BY y GROUP BY siempre comienza con 1, no con 0.