Jika saya memahami kueri Anda dengan benar, Anda bermaksud untuk memilih catatan dengan sort_metric terendah, dan jika ada lebih banyak, catatan dengan id terendah. Selfjoin ganda Anda disebabkan oleh tidak ingin menduplikasi daftar jelek in(). Cara lain untuk melakukannya adalah dengan menggunakan CTE, hanya membutuhkan satu self-join:
WITH ext AS (
SELECT id,f_key,name,sort_metric
FROM tmp.names
WHERE f_key IN ( 1, 3, 254, 257, 301, 273, 279 )
)
SELECT t1.*
FROM ext t1
WHERE NOT EXISTS (
SELECT *
FROM ext t2
WHERE t2.sort_metric <= t1.sort_metric
AND t2.f_key = t1.f_key
AND t2.id < t1.id
)
ORDER BY t1.id
LIMIT 1
;