PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres wybiera wszystkie kolumny, ale grupuje je według jednej kolumny

Za każdym razem, gdy zaczynasz myśleć, że chcesz zlokalizować grupę GROUP BY, powinieneś zacząć myśleć o funkcje okien zamiast tego.

Myślę, że szukasz czegoś takiego:

select unit_id, time, diag
from (
    select unit_id, time, diag,
           rank() over (partition by unit_id order by time desc) as rank
    from diagnostics.unit_diag_history
) as dt
where rank = 1

Możesz chcieć dodać coś do ORDER BY, aby konsekwentnie łamać remisy, ale nie zmieniłoby to ogólnej techniki.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wysłać zapytanie do elementu JSON?

  2. Problem z kodowaniem PostgreSQL podczas wykonywania zapytania z wiersza poleceń

  3. Postgres UPSERT ponownie użyj wartości kolumn z INSERT w dniu UPDATE

  4. Funkcja działa szybciej bez modyfikatora STRICT?

  5. Czy możliwe jest zliczanie według różnych warunków w jednym zapytaniu?