본문 바로가기

PostgreSQL10

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 - 날짜계산 프로그래밍을 하다가 제일 귀찮은 것 중의 하나가 날짜 데이터 연산이다. 데이터베이스에 저장된 날짜 데이터의 데이터형식이 일률적이면, Application Layer, 또는 DB Layer에서 표준 계산법을 정하면 되지만.. 실상은 그렇지 않다. 이래서 표준 도메인을 강조하는가 보다.PostgreSQL에서 날자 계산하는 방법은 아래와 같다. 이 예제는 문자 데이터값 기준이다. 날짜 컬럼의 데이터라면 또 다를 수 있다. 사용법이 다른 dbms보다는 조금 특이한듯 하다. CREATE TABLE members ( user_id varchar(255) , regdate varchar(255) , birthday varchar(255) ); INSERT INTO members VALUES ('USER01', '20.. 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.
반응형