2

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

以下是一些示例数据:

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 和 COL4 对所有重复项进行分组,这很容易,但我需要从 ID 和 SUBID 列中的分组中输出一个数字,这与来自哪个分组行无关,它只需要一个值。

当我查询数百万行时,性能也是这样做的关键。

希望以上内容有意义,谢谢。

4

2 回答 2

1

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

select min(id), min(subid), col1, col2, col3, col4
from tab
group by col1, col2, col3, col4 
于 2012-08-08T12:21:47.810 回答
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
            )
于 2012-08-08T12:21:12.957 回答