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

min または max を使用していずれかを選択できます。それらは同じ行からのものではありませんが、「単なる値」です。

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 に答える