'test_table' 包含一个名为 vendor 的列,char 值从 1 到 9,1 是最高优先级。'test_table' 还有另一个名为 match 的列,其 char 值为 'I' 或 'H',而 'I' 获得更高的优先级。我想返回 ID 中具有唯一值的所有行,按匹配优先,然后是供应商。
测试表
ID Vendor Match
1 3 I
1 2 I
1 4 H
2 1 H
2 1 I
3 1 H
3 2 I
期望的结果
ID Vendor Match
1 2 I
2 1 I
3 2 I
SELECT *
FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) AS RowNo, *
FROM test_table) x
WHERE RowNo = 1
ORDER BY ID
任何帮助将不胜感激。谢谢!