「最も近い値を持つデータを別のデータセットからマッチングする方法について考える話」をSQLで考える話
最も近い値を持つデータを別のデータセットからマッチングする方法について考える話
この記事を読みまして、直積にはなるけどSQL一発で書けるよな、と思って書いてみました。
proc sql; create table result as select T1.ID, T1.X, T1.ID2, T1.Y, T1.diff from ( select Q1.ID, Q1.X, Q2.ID2, Q2.Y, abs(Q1.X-Q2.Y) as diff from Q1 cross join Q2) as T1 group by T1.ID,T1.X having T1.diff = abs(T1.X-T1.Y) order by T1.ID,T1.X;
やっぱり書けた。よかった。