を「関係が存在しません」私は、PostgreSQL 9.1を使用していますが、私はこのヒントを使用して、私のテーブルから重複を削除する: https://stackoverflow.com/a/3822833/2239537のPostgreSQLで、削除
だから、私のクエリは以下のようになります。
WITH cte
AS (SELECT ROW_NUMBER()
OVER (PARTITION BY code, card_id, parent_id
ORDER BY id DESC) RN
FROM card)
DELETE FROM cte
WHERE RN > 1
しかし、それは私
ERROR: relation "cte" does not exist
SQL state: 42P01
Character: 157
を示している。しかし、この文は正常に動作します:
WITH cte
AS (SELECT ROW_NUMBER()
OVER (PARTITION BY code, card_id, parent_id
ORDER BY id DESC) RN
FROM merchantcard)
SELECT * FROM cte
WHERE RN > 1
どのようにすればよいですか? ありがとう!
うわー、おかげで迅速な回答、有用な答えを!私のために働いた、 "削除FROMカード"を追加するだけでしたが、これはもちろん、タイプミスです。 –
@AlexKartishevはい、ありがとう、更新済み –
最初の解決策は、私のためにテーブルのすべての行を削除するようです。私はcteの動作を理解していません: 'select count(1)from cn where rn> 'を実行すると正しい番号が得られますが、' select count(1) 1) 'はすべての行を返します –