0

目標:
テーブル テストで、削除される重複データを表示します。
ただし、たとえば「3412 New York」のように重複するデータが 2 つある場合。テスト テーブルには 1 行のみを表示する必要があります。

問題:
やり方がわからない。このテーブルは数百万行になる可能性があることに注意してください。

All data from the list

table testing
Region          Category    Energy
----------------------------------
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3412 New York   food        3
3412 New York   food        3
3412 Washington coke        7
3412 california chips       20
3412 california chips       20
3412 california chips       20
3412 california chips       20





Requested result that should display data in table testing
Table testing
Region          Category    Energy
----------------------------------
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3412 New York   food        3
3412 california chips       20
3412 california chips       20
3412 california chips       20
4

2 に答える 2

1

結果を見るには

SELECT
    Region, Category, Energy
FROM
    (
    SELECT
       Region, Category, Energy,
       ROW_NUMBER() OVER (PARTITION BY Region, Category, Energy ORDER BY Region) AS rn
    FROm
       MyTable
    ) X
WHERE
   X.rn > 1
于 2012-07-24T17:53:08.887 に答える
0

主キーがないため、group by または distinct を使用してテーブルを再生成できます。

select distinct Region, Category, Energy
into newt
from t

これにより、重複を特定してから、それらの行を削除する方法を再度考え出す必要がなくなります。

于 2012-07-24T18:40:18.003 に答える