SQL: 두 값의 거리 계산하기

2018-12-30

데이터 분석에서 거리는 물리적 공간의 길이가 아닌 거리라는 개념이 등장. 예를 들어 시험을 보았을 때 평균에서 어느 정도 떨어져 있는지, 작년 매출과 올해 매출에 어느 정도의 차이가 있는지 등을 모두 거리라고 부름. 추가로 어떤 사용자가 있을 때 해당 사용자와 구매 경향이 비슷한 사용자를 뽑는 등의 응용 상황에서도 거리라는 개념이 중요하게 작용. 거리 계산은 유사도 계산, 추천 구현의 기초가 되는 개념

x1 x2
5 10
10 5

일차원의 위치 정보 구하기

SELECT
    abs(x1 - x2) AS abs,
    sqrt(power(x1 - x2, 2)) AS rms
FROM location_id
  • ABS 함수: 절대값 계산
  • POWER 함수: 제곱 계산
  • SQRT 함수: 제곱근 계산

값이 일차원이라면 절대값과 제곱 평균 제곱근은 같은 결과를 나타냄

이차원 테이블에 대해 제곱 평균 제곱근(유클리드 거리)을 구하기

x1 x2 x3 x4
0 0 2 2
3 5 1 2
SELECT
    sqrt(power(x1 - x2, 2) + power(y1 - y2, 2)) AS dist
FROM location_2d
dist
2.8284
3.6055