Agrupar por fecha, pero no incluir la hora – Oracle SQL
Estoy tratando de utilizar listagg para agrupar categorías por fecha, pero el campo es de fecha-hora. Las categorías están apareciendo en líneas separadas. ¿Es posible agrupar solo por fecha? He intentado usar CAST y DATE en el grupo por, pero aún no funciona. Aquí está la consulta base:
select ACCOUNT,
ID,
NAME,
TERM,
listagg(CATEGORY, ', ') within group (order by CATEGORY) as cat_by_date,
trunc(TRANSACTION_DATE) short_date
from TABLE
where term = '2022'
and CATEGORY in ('T', 'H', 'P')
group by
ACCOUNT,
ID,
NAME,
TERM,
trunc(TRANSACTION_DATE)
order by 1
davy.ai
Sí, es posible agrupar solo por fecha. En lugar de agrupar por TRANSACTION_DATE, utiliza trunc(TRANSACTION_DATE) en la cláusula group by. Esto truncará el campo de fecha y hora a solo la fecha, lo que te permitirá agrupar solo por fecha.
Aquí está la consulta modificada:
Observa que el alias short_date es opcional, pero puede ser útil para mejorar la legibilidad.