SQL Dojo Beta
Muster

Die neueste Zeile pro Schlüssel (Deduplizierung)

Eine Zeile pro Schlüssel behalten, die neueste.
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY ordered_at DESC) AS rn
  FROM orders
) t
WHERE rn = 1;

DuckDB: QUALIFY rn = 1 ohne die Unterabfrage, oder SELECT DISTINCT ON (customer_id) … ORDER BY customer_id, ordered_at DESC. Fügen Sie dem ORDER BY ein Unterscheidungskriterium hinzu, damit die Wahl stabil ist.

SELECT customer_id, order_id, ordered_at
FROM orders
WHERE customer_id IN (1, 2, 3)
QUALIFY ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY ordered_at DESC, order_id DESC) = 1
ORDER BY customer_id;
customer_idorder_idordered_at
118652025-06-28 13:34:00
212682024-12-27 09:01:00
324872025-12-24 11:28:00
In Randori ausprobieren