Seřaďte záznamy pomocí ROW_NUMBER, aby maximální hodnota pro sku byla #1. Pak si ponechte pouze ty záznamy, které se umístily na #1.
select sku, item, value
from
(
select
mytable.*
row_number() over (partition by sku order by value desc) as rn
from mytable
)
where rn = 1;
Pro SKU 1503818 získáte jednu z těchto dvou:
1503818 1636708 0,9440251 1503818 1636709 0,9440251
Pokud chcete konkrétní (např. ten s vyšším číslem položky), přidejte toto kritérium do klauzule ORDER BY v Row_Number.
Pokud jde o dotaz, který jste sami vyzkoušeli:Místo toho byste měli hledat páry sku-hodnota:
select SKU, ITEM, VALUE from import
where (sku,value) in (select sku, max(value) from import group by sku);
V případě shody, jako u SKU 1503818, vám však tento dotaz poskytne oba záznamy.