¿Cómo combino correctamente esta declaración?Cómo combinar GROUP BY, ORDER BY y HABER
SELECT *, COUNT(*)
FROM user_log
GROUP BY Email
ORDER BY UpdateDate DESC
HAVING COUNT(*) > 1
Avísame
¿Cómo combino correctamente esta declaración?Cómo combinar GROUP BY, ORDER BY y HABER
SELECT *, COUNT(*)
FROM user_log
GROUP BY Email
ORDER BY UpdateDate DESC
HAVING COUNT(*) > 1
Avísame
ORDER BY
siempre es la última ...
Sin embargo, usted necesita escoger los campos que QUIERE REALMENTE a continuación, seleccione sólo aquellos y el grupo por ellos. SELECT *
y GROUP BY Email
le dará VALORES ALEATORIOS para todos los campos excepto Email
. La mayoría de RDBMS ni siquiera le permitirá hacer esto debido a los problemas que crea, pero MySQL es la excepción.
SELECT Email, COUNT(*)
FROM user_log
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
+1 punto agradable sobre MySQL y GROUP BY –
(Cuando tienes un 'GROUP BY'), la misma lógica aplica para todos los campos que pones en la lista' SELECT', la cláusula 'HAVING' y la cláusula' ORDER BY' . Por lo tanto, también se aplica para 'ORDER BY UpdateDate'. A menos que 'UpdateDate' dependa de' Email', obtendrás un orden bastante aleatorio. –
pasos para usar Grupo por, Tener y por Ordenar por ...
Select Attitude ,count(*) from Person
group by person
HAving PersonAttitude='cool and friendly'
Order by PersonName.
La regla general GROUP BY es: "Si se especifica una cláusula GROUP BY, cada referencia de columna en la lista SELECT debe identificar una columna de agrupación o ser el argumento de una función establecida," – jarlh
El código debería ser contiene WHILE
antes group by
y having
:
SELECT Email, COUNT(*)
FROM user_log
WHILE Email IS NOT NULL
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
Copiar bien pegar: P –
general GROUP BY consejo: "Si se especifica una cláusula GROUP BY, cada referencia de columna en la lista SELECT debe identificar una columna de agrupación o ser el argumento de un establecer la función ". – jarlh