住所のセットのジオコーディングされたデータを含むテーブルがあります。問題は、緯度と経度は同じ列に格納されますが、同じ表の別の列にあるコード(0または1)によって区別されます。各アドレスには、列に2回現れる一意のIDが付けられます(latの場合は1、longの場合は1)。SQL:指定されたIDに対して別々の列としてコード化された行を格納
対応するIDとともに、別の列として同じ行にlatとlongを表示したいとします。
住所のセットのジオコーディングされたデータを含むテーブルがあります。問題は、緯度と経度は同じ列に格納されますが、同じ表の別の列にあるコード(0または1)によって区別されます。各アドレスには、列に2回現れる一意のIDが付けられます(latの場合は1、longの場合は1)。SQL:指定されたIDに対して別々の列としてコード化された行を格納
対応するIDとともに、別の列として同じ行にlatとlongを表示したいとします。
select unique_id,
max(case when code = 0 then geocoded_column end) as lat,
max(case when code = 1 then geocoded_column end) as long
from geocoded_table
group by unique_id
ありがとう!私は別のスレッドで同様の提案を見ていましたが、動作させることができませんでした。始めて、これはうまくいったので、どこかに問題があったに違いない。 – themorethelarrier
with ttt as (
select 111 ID, '54.65548' coords, 1 def from dual
union all
select 111 ID, '-34.8456' coords, 0 def from dual
)
select t1.ID, t1.coords, t2.coords
from ttt t1
join ttt t2 ON t1.ID = t2.ID
and t1.def <> t2.def
and t1.def = 1 -- or t1.def = 0 if you want change order of coords
いくつかのサンプルデータと予想される出力を示しています。 –
サンプルがなくてもイメージングするのは難しいです。感謝! –