SQL - 分组重复项和唯一ID问题

时间:2012-08-08 12:18:01

标签: sql duplicates grouping

希望有人能指出我正确的方向。我有一点头发拉动。

以下是一些示例数据:

ID    SUBID   COL1      COL2      COL2      COL3
1     10001   Test 1    Test 2    Test 3    Test 4
2     10002   Test 1    Test 2    Test 3    Test 4
3     10003   Test 1    Test 2    Test 3    Test 4
4     10004   Test 1    Test 2    Test 3    Test 4
5     10005   Test 5    Test 6    Test 7    Test 8

我需要结果如下:

ID    SUBID   COL1      COL2      COL2      COL3
4     10004   Test 1    Test 2    Test 3    Test 4
5     10005   Test 5    Test 6    Test 7    Test 8

我需要根据COL1,COL2,COL3和&amp ;;组合所有副本。 COL4这很简单,但我需要从ID和SUBID列中的分组输出一个数字,它来自哪个分组行并不重要,它只需要一个值。

在我查询数百万行时,性能也是关键。

希望上述内容有道理,谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用min或max选择一个。它们不会来自同一行,但它只是“一个价值”。

select min(id), min(subid), col1, col2, col3, col4
from tab
group by col1, col2, col3, col4 

答案 1 :(得分:0)

select id, subid, COL1, COL2, COL3, COL4
from your_table
where id in (
             select min(id)
             from your_table
             group by COL1, COL2, COL3, COL4
            )