ブログお引越ししました。
世界の切りとり方
5秒後に移動します…

「2地点間の緯度経度から直線距離でもっとも近いデータを取得する話」をSQLで書く話

SASYAMAさんの記事を見て、SQLで書いてみました。

データステップ100万回 SAS新手一生
2地点間の緯度経度から直線距離でもっとも近いデータを取得する話 geodist関数
http://sas-tumesas.blogspot.jp/2016/02/2-geodist.html?spref=tw

市の名称を処理しようとするとエラーになるので、
レコードの番号で処理。
直積ですけどねー(47×47程度なら...)
データはSASYAMAさんのデータセットをそのまま使わせて頂きました。

proc sql;
select 
	t1.no as from, 
	geodist(t1.ido,t1.keido,t2.ido,t2.keido) as distance,
	t2.no as to
from q1 as T1 
	cross join q1 as t2
where t1.no <> t2.no 
	and t1.no < t2.no
order by geodist(t1.ido,t1.keido,t2.ido,t2.keido)
;

なんだか久しぶりにSQL書いたな。