PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Tabellenergebnisse in Spalten zusammenführen (Pivot/Kreuztabelle?)

Um den neuesten Zeitstempel zu finden, verwenden Sie zuerst den Vergleichsoperator, um zukünftige Zeitstempel auszuschließen. Ordnen Sie als Nächstes nach dem kleinsten Intervall, indem Sie mögliche Zeitstempelkandidaten von Ihrem gewünschten Zeitstempel subtrahieren. Um nur das neueste Ergebnis zu erhalten, begrenzen Sie 1.

Um die Tabelle2 val zu erhalten Spalte, die mit den Tabellenspalten angezeigt werden soll, müssen Sie nur den gleichen Code für Tabelle2 innerhalb einer Unterabfrage ausführen.

SELECT update_time AS time, id1, id2, val, (
  SELECT val from table2 
  WHERE '2004-10-19 10:04:00' >= update_time
  ORDER BY '2004-10-19 10:04:00' - update_time
  LIMIT 1
)
FROM table1 WHERE '2004-10-19 10:04:00' >= update_time
ORDER BY '2004-10-19 10:04:00' - update_time
LIMIT 1;