SQL & DB/PostgreSQL

[PostgreSQL] 계산 관련 함수(ABS, POWER , SQRT, POINT)

YSY^ 2021. 1. 7. 17:06

DATASET QUERY

DROP TABLE IF EXISTS location_1d;
CREATE TABLE location_1d (
    x1 integer
  , x2 integer
);

INSERT INTO location_1d
VALUES
    ( 5 , 10)
  , (10 ,  5)
  , (-2 ,  4)
  , ( 3 ,  3)
  , ( 0 ,  1)
;

 

절대값, 제곱근, 루트 계산(ABS, POWER, SQRT)

ABS는 절대값을 계산하는 함수이며, POWER는 제곱함수, SQRT는 제곱근을 구하는 함수이다.

select
	abs(x1 - x2)
	,power(x1 - x2, 2) as Squared
	,sqrt(power(x1 - x2, 2)) as Squared_root
from location_1d;

 

DATASET2 QUERY

DROP TABLE IF EXISTS location_2d;
CREATE TABLE location_2d (
    x1 integer
  , y1 integer
  , x2 integer
  , y2 integer
);

INSERT INTO location_2d
VALUES
    (0, 0, 2, 2)
  , (3, 5, 1, 2)
  , (5, 3, 2, 1)
;

 

두 점의 거리 구하기(Point)

보통 두점의 거리를 구할때는 유클리드 거리를 사용한다. 유클리드 거리 공식은 다음과 같다

이를 Sqrt, power함수를 활용해서 구현할 수도 있지만 POINT함수를 써도 된다.

point(x1, y1) <-> point(x2,y2)
select sqrt(power(x1 - x2,2) + power(y1 - y2,2)) as dist
	,point(x1, y1) <-> point(x2,y2) as point_dist
from location_2d;

 

728x90
반응형