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 |