0
毎日テーブルBの2つのデータ値(日付毎日のバックアップ)を更新しようとしていますが、Bには何百万ものレベルデータがあります テーブルAとBの構造はテーブルデータを条件付きで更新するには?
ですA -----Da primary key
-----Db
B -----Da (table may have many Da data)
-----Db
-----....
さて、私のSQLは次のとおりです。
INSERT INTO A (Da,Db)
SELECT DISTINCT on(Da)Da,Db
FROM B
ON conflict(Da) DO UPDATE SET Db = excluded.Db
しかし、それは非効率的ですが、私は、A.ので判断UPDATEの前に効率を改善します(A.Db = B.Dbがあれば何もしない)を行った場合を考えますほとんどの場合、Db = B.Db(約94%)。 コードを書く方法は私にとっては問題です(私はSQLにあまり慣れていません)。 偉大な神に尋ねられ、厄介です! !
しかし...現時点では、ORDER BYで –
右を使用していないというエラーはありませんが、特定の 'Da'のための' Db'のどのあなたがしたいです:
DISTINCT ON
を使用するときは、ORDER BY
を必要とします出力にありますか? –あなたの答えをありがとう、私はあなたの平均を知っています、そして、Daが同じ日常ならばDbは固定ですので、私は問題を心配する必要はありません...(私は英語でいくつかの問題を抱えています...) –