sql >> Databasteknik >  >> RDS >> PostgreSQL

Välja rader ordnade efter någon kolumn och distinkta i en annan

Ganska tydlig fråga :)

SELECT t1.* FROM purchases t1
LEFT JOIN purchases t2
ON t1.address_id = t2.address_id AND t1.purchased_at < t2.purchased_at
WHERE t2.purchased_at IS NULL
ORDER BY t1.purchased_at DESC

Och troligen ett snabbare tillvägagångssätt:

SELECT t1.* FROM purchases t1
JOIN (
    SELECT address_id, max(purchased_at) max_purchased_at
    FROM purchases
    GROUP BY address_id
) t2
ON t1.address_id = t2.address_id AND t1.purchased_at = t2.max_purchased_at
ORDER BY t1.purchased_at DESC


  1. Cachning i PostgreSQL

  2. Hur laddar man en XML-fil till en databas med ett SSIS-paket?

  3. Importera .csv med tidsstämpelkolumn (dd.mm.åååå hh.mm.ss) med psql \copy

  4. GreenDAO stöder flera relationer mellan tabeller