Tengo una tabla simple con un unit_id oid, indicación de fecha y hora, diag bytea. La clave principal es una combinación de tiempo y unit_id.Postgres selecciona todas las columnas pero agrupa por una columna
La idea detrás de esta consulta es obtener la última fila (marca de tiempo más grande) para cada unit_id único. Sin embargo, las filas para cada unit_id con la última hora no siempre se devuelven.
Realmente quiero agrupar solo unit_id, pero postgres me hace usar diag también, ya que estoy seleccionando eso.
SELECT DISTINCT ON(unit_id) max(time) as time, diag, unit_id
FROM diagnostics.unit_diag_history
GROUP BY unit_id, diag
¿Podemos hacer esto sin usar sub selección? – metdos
@metdos: No puedo pensar en nada fuera de mi cabeza, pero podría haber una manera. ¿Qué pasa con las tablas derivadas? –