Me parece que tu problema es que estás confundiendo
ordenar con
agrupar.
En BBDD son cosas diferentes.
Un GROUP BY es una operación donde se trata de obtener
subtotales en base a un conjunto de datos que tomados en grupo, se diferencian entre un registro y otro.
datos como:
Cita: 1, 33, 34, 6, 7, 9
1, 32, 34, 6, 7, 9
tomados como grupo son registros distintos, por más que sólo se diferencien en un único valor, cuando aplicas el GROUP BY.
Lo que no puedes hacer es agrupar sin especificar qué agrupas, es decir, cuáles campos se diferenciarán y cuales no. Es una restricción obligatoria en SQL Server, PostgreSQL, Oracle, DB2 y otros DBMS (no en MySQL).
Si lo que quieres es obtener los registros correspondientes a los 6 últimos días (los 6
primeros son otra cosa), la consulta que haces, sin el GROUP BY te lo devolvería.
Podríamos intentarlo así:
Código SQL:
Ver originalSELECT site_id, identity_id, parity, event_type, eventdate
FROM events
WHERE
event_type = 270
AND eventdate BETWEEN DATEADD(DAY, -6, Getdate()) AND GetDate()
ORDER BY eventdate, site_id, identity_id, parity, event_type
O bien lo hacemos agrupando:
Código SQL:
Ver originalSELECT site_id, identity_id, parity, event_type, MAX(eventdate) eventdate
FROM events
WHERE
event_type = 270
AND eventdate BETWEEN DATEADD(DAY, -6, Getdate()) AND GetDate()
GROUP BY site_id, identity_id, parity, event_type
Como sea, lo primero que debes definir es qué información quieres obtener. Eso es lo que no está muy claro. Y por "qué información", estamos hablando de qué nivel de consolidación (sumas, promedios, maximos, mínimos), y sobre qué campos necesitas.