La agrupación resultado por fecha en MySQL
Pregunta
Esta instrucción SQL
SELECT `ip`, `when` FROM `metrics` WHERE `vidID` = '1' GROUP BY DATE('when')
devuelve un resultado, a pesar de que múltiples están presentes en la mesa con diferentes fechas. He intentado usar DATE_FORMAT
también. ¿Estoy haciendo algo estúpido?
When
es una columna de marca de tiempo con marca de tiempo completo, incluyendo horas, minutos y segundos. Estoy intentando simplemente por grupo de resultados por día / mes / año.
Solución
Parece que eres la agrupación por la cadena constante 'when'
en lugar del campo when
.
Utilice este lugar:
GROUP BY DATE(`when`)
Parece que usted desea contar las direcciones IP para una fecha determinada:
SELECT COUNT(`ip`) AddressCount, `when`
FROM `metrics`
WHERE `vidID` = '1'
GROUP BY DATE(`when`)
Otros consejos
Por lo general, GROUP BY se utiliza en conjunción con alguna función de agregado (como SUMA, por ejemplo) para calcular el conjunto de resultados de una o más columnas. ¿Qué está tratando de lograr aquí? Qué quiere decir para ordenar, o simplemente obtener una lista colapsada IPs de los cuales tienen registros en qué fechas?