sql >> Database >  >> RDS >> Oracle

Selecteer de laatste rij voor elke groep van orakel

U kunt analytische functies gebruiken

SELECT *
  FROM (SELECT c.*,
               rank() over (partition by user_id order by ts desc) rnk
          FROM comments c)
 WHERE rnk = 1

Afhankelijk van hoe u met koppelingen wilt omgaan (als er twee rijen kunnen zijn met dezelfde user_id en ts ), wilt u misschien het row_number . gebruiken of dense_rank functie in plaats van rank . rank zou toestaan ​​dat meerdere rijen de eerste zijn als er een gelijkspel was. row_number zou willekeurig één rij teruggeven als er een gelijkspel was. dense_rank zou zich gedragen als rank voor de rijen die eerst gelijk waren, maar de volgende rij als tweede beschouwen in plaats van als derde, ervan uitgaande dat twee rijen gelijk eindigen.



  1. Waarde Fout bij het importeren van gegevens in de postgres-tabel met psycopg2

  2. mysql selecteer top n max waarden

  3. Python REST API's met Flask, Connexion en SQLAlchemy - Deel 3

  4. Problemen oplossen Tabel niet gevonden fouten