これをpostgreSQLで実行するには何が変わる必要がありますか?これを変更してpostgresqlで実行するにはどうすればよいですか?
私はSQLの一部を与えられた
UPDATE ACC
SET ACC.ACC_EC = SITESmin.ACC_EC,
ACC.ACC_NC = SITESmin.ACC_NC
FROM ACC
INNER JOIN LATERAL (SELECT TOP 1
*
FROM SITES
ORDER BY (acc_ec - site_etg) * (acc_ec - site_etg) + (acc_ncb - site_ntg) * (acc_ncb - site_ntg)
) SITESmin;
それは、SETを使用しているようだが、なぜ私にはわからないので、それが必要でなければ、それをドロップします。 私は距離を動作させるためにpostgresqlを取得しようとしています。ファイル1のすべてのレコードについて、ファイル2の3300レコードと比較し、最も近いものを選択する必要があります。受け取った知恵は、3300の配列ソリューションを示唆していますが、私はそれを行う方法がわかりません。おそらくそれはSQLの「サブクエリ」です。
サンプルをアップロードすることが許可されている場合、私はこれを許可しますが、これは許可されていないと感じていますか?ここで
は、提出された名前
public.acc.Location_Easting_OSGR
public.acc.Location_Northing_OSGR
"public"."Sites"."SITE_ETG"
"public"."Sites"."SITE_NTG"
'sのを再現するために作るためにスキーマといくつかのデータを提供してください
を/ ACC INNER JOIN LATERAL // ' – wildplasser
そして、サブクエリの最上部にある' TOP 1'を一番下の 'LIMIT 1 'に置き換えます。そして: 'acc_ec - site_etg ...'などにいくつかの範囲テーブル修飾子を追加して、他の人が理解できるようにします。 – wildplasser