[SQL]PostgreSQLの幾何データ演算子TIPS

posGeometry

PostgreSQLには豊富な幾何データ型と幾何データを扱うための演算子があります。

幾何データ型
幾何関数と演算子

主に地理データを扱う時に使用することが多いのですが、地理データ以外に使っても便利な効果が得られます。

例えば、ある二つのデータ(ここでは、「価格」と「大きさ」とします)が、最大値からどれだけ離れているかを求めたい場合は、以下のクエリで最大値からの距離が求めることができます。
(先に求めておいた最大値と比較したいカラムを、それぞれpoint型に型変換したのち「<->」演算子で2点の距離を出力します)

あるいは、複数のカラムの値が、ある範囲内に収まっているかどうか? は以下のクエリで判定することができます。

各カラムの値が、指定した範囲内に収まっていれば「真」が返ってきます。

その他にも、データが指定した範囲より右に有るか左にあるか?という比較が行えたり、boxの中心点の距離を取得することで、「どのくらい似ているか?」の指標が得られたりするので、簡単なレコメンドやクラスタリングなどを行いたいときに、使ってみると面白いかもしれません。

カテゴリー: SQL