Xếp hạng các bản ghi với ROW_NUMBER để giá trị tối đa của một sku đạt # 1. Sau đó, chỉ giữ lại những hồ sơ được xếp hạng # 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;
Đối với SKU 1503818, bạn sẽ nhận được một trong hai điều sau:
1503818 1636708 0,9440251 1503818 1636709 0,9440251
Nếu bạn muốn một tiêu chí cụ thể (ví dụ:tiêu chí có số mục cao hơn) thì hãy thêm tiêu chí này vào mệnh đề ORDER BY của Row_Number.
Đối với truy vấn bạn đã tự thử:Thay vào đó, bạn nên tìm kiếm các cặp giá trị sku:
select SKU, ITEM, VALUE from import
where (sku,value) in (select sku, max(value) from import group by sku);
Tuy nhiên, trong trường hợp hòa, như với SKU 1503818, truy vấn này sẽ giúp bạn nhận được cả hai bản ghi.