SELECT
MAX(id) id,
po_nbr
FROM
temp
GROUP BY
po_nbr
Aby mieć powiązaną datę, możesz zrobić (uwaga, oznacza to identyfikator sekwencyjny):
SELECT
temp.id,
temp.po_nbr,
temp.crt_ts
FROM
temp
INNER JOIN (
SELECT MAX(id) id FROM temp GROUP BY po_nbr
) latest ON latest.id = temp.id
Bez identyfikatora sekwencyjnego byłoby to:
SELECT
MAX(temp.id) id,
temp.po_nbr,
temp.crt_ts
FROM
temp INNER JOIN (
SELECT MAX(crt_ts) crt_ts, po_nbr
FROM temp i
GROUP BY po_nbr
) latest ON latest.crt_ts = temp.crt_ts AND latest.po_nbr = temp.po_nbr
GROUP BY
temp.po_nbr,
temp.crt_ts
GROUP BY
można pominąć, jeśli nie ma dwóch równych dat na po_nbr
grupy.
Indeksy na crt_ts
i po_nbr
pomoc w ostatnim zapytaniu, najlepiej byłoby utworzyć jeden połączony indeks.