PostgreSQL - Window function
AVG(), MAX(), MIN() 등 집약함수를 쓸때, 하나의 결과를 리턴하지만, Over 구문을 사용해서 윈도함수로 쓸 수 있다. 물론 PostgreSQL에만 지원하는 것은 아니고, 대다수의 DBMS에서도 사용할 수 있다.아래 예시는 집약함수를 적용한 값과 Over 구문을 사용해서 윈도함수로 적용한 값의 예이다. CREATE TABLE exam_tab ( user_id varchar(255) , exam_id varchar(255) , score numeric ); INSERT INTO exam_tab VALUES ('USER01', 'A001', 4.0) , ('USER01', 'A002', 5.0) , ('USER01', 'A003', 5.0) , ('USER02', 'A001', 3.0) , (..
2018. 7. 6.
PostgreSQL - ABS, POWER, SQRT, POINT 함수
절대값을 계산할 때는 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가..
2018. 7. 6.
PostgreSQL - greatest, least, SIGN함수
PostgreSQL의 최대값, 최소값을 구하는 함수는 greatest, least 이다. 다른 dbms의 MAX함수나 MIN함수처럼 함수명이 직관적이긴 한데, 굳이 이렇게 네이밍을 했어야 하나하는 생각은 든다.정정 : 다시 확인해봤는데, postgreSQL에서 MAX, MIN과 GREATEST, LEAST의 사용법은 엄연히 다르다. MAX, MIN은 레코드중에서 최대/최소값을 구하는 것이고, GREATEST, LEAST는 여러 컬럼 값 중에서 최대/최소값을 구하는 것이다. --3을 반환한다. select greatest(1, 2, 3) ; --quart_sales의 분기2 레코드의 최대/최소값을 반환한다. select MAX(분기2), MIN(분기2) from quart_sales; SIGN 함수는 매개..
2018. 7. 3.