본문 바로가기
Tech/Database

PostgreSQL - ABS, POWER, SQRT, POINT 함수

by Augustine™ 2018. 7. 6.
반응형

절대값을 계산할 때는 ABS함수를 사용한다. 예를 들어, -2와 +2 라는 값을 + 연산을 하게 되면, 0이지만, 이 두 값 간의 차이값.. 즉 절대값을 구해야할 때가 있다. 두 지점의 거리라든지... 그런 경우엔 ABS함수를 활용할 수 있다.


CREATE TABLE location1 (
    x1 integer
  , x2 integer
);

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

select ABS(x1 - x2) as 절대값 from location1;


결과는 아래와 같다.


제곱근을 구할 때, SQRT 함수를 쓴다. 제곱근이 뭔지 모른다고?? 괜찮다. 모를 수 있다. 25의 제곱근은 5이다. 5가 25의 제곱근이 된다.

POWER함수는 숫자를 거듭 제곱한 값을 반환한다. 예를 들어, 5를 두번 곱하면? 25이다. 


select SQRT(25) as 제곱근, POWER(5, 2) as 제곱값;



PostgreSQL에는 두 좌표간 거리를 계산할 때 쓰이는 유클리드 값을 구현할 수 있다. 참고로 유클리드 계산법은 아래와 같다.

POINT함수를 이용하여 유클리드 값을 구할 수 있는데, 위 공식에 비해 문법이 아주 심플하다.

POINT(x1, y1) <-> POINT(x2, y2)


CREATE TABLE location2 (
    x1 integer
  , y1 integer
  , x2 integer
  , y2 integer
);

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

select point(x1,y1) <-> point(x2, y2) as 유클리드값 from location2;



반응형

'Tech > Database' 카테고리의 다른 글

PostgreSQL - Window function  (0) 2018.07.06
PostgreSQL - 날짜계산  (0) 2018.07.06
Transaction의 이해 - PostgreSQL  (0) 2018.07.04
PostgreSQL - greatest, least, SIGN함수  (0) 2018.07.03
PostgreSQL - COALESCE 함수 활용  (0) 2018.07.03

댓글