데.분.레 - 복습 3

두 값의 거리 계산하기

SELECT ABS(x1-x2) AS abs
     , SQRT(POWER(x1-x2,2)) AS rms
  FROM location_1d


1차원에 있는 점 사이의 거리를 구하는 쿼리이다.
ABS : 절댓값을 계산하는 함수
POWER : 제곱을 하는 함수
SQRT : 제곱근을 구할 때 사용


2차원 평면위의 두점 사이의 거리를 구해보자

SELECT SQRT(POWER(x1-x2, 2)+POWER(y1-y2,2)) AS dist
  FROM location_2d


피타고라스 공식을 응용한 유클리드 거리를 계산하는 쿼리이다.

날짜/시간 계산하기

SELECT user_id
     , register_stamp::timestamp AS register_stamp
     , DATEADD(hour, 1, register_stamp::timestamp) AS after_1_hour
     , DATEADD(minute, -30, register_stamp::timestamp) AS before_30_minutes
     
     , register_stamp::date AS register_date
     , DATEADD(day, 1, register_stamp::date) AS after_1_day
     , DATEADD(month, -1, register_stamp::date) AS before_1_month
  FROM mst_users_with_dates

SELECT user_id
     , CURRENT_DATE AS today
     , register_stamp::date AS register_date
     , CURRENT_DATE - register_stamp::date AS diff_days
  FROM mst_users_with_dates


회원 등록일과 현재 날짜의 차이, 회원 등록일과 생년월일과의 날짜 차이를 계산하는 쿼리이다.

IP주소에서 4개의 10진수 부분을 추출하는 쿼리

SELECT ip
     , CAST(SPLIT_PART(ip, '.', 1) AS integer) AS ip_part_1
     , CAST(SPLIT_PART(ip, '.', 2) AS integer) AS ip_part_2
     , CAST(SPLIT_PART(ip, '.', 3) AS integer) AS ip_part_3
     , CAST(SPLIT_PART(ip, '.', 4) AS integer) AS ip_part_4
  FROM (SELECT '192.168.0.1' AS ip) AS t

좋은 웹페이지 즐겨찾기