PostgreSQL SQL 내장 함수
함수는 "쿼리 실행 계획 안에 들어가는 연산 노드입니다.
즉, 함수는 SQL 문법 요소와 동시에 실행 계획의 일부입니다. 이는 비용과 선택도에 영향을 줍니다. 함수를 사용은 성능 설계의 도움을 줄 수 있습니다.
PostgreSQL 함수의 3대 분류
스칼라 함수
1 row -> 1 value
SELECT upper(name), length(code)
FROM product;
- 각 행마다 실행
- SELECT / WHERE / ORDER BY 모두 사용이 가능합니다.
문
집계 함수
N rows -> 1 value
SELECT dept_id, count(*)
FROM emp
GROUP BY dept_id;
- GROUP BY와 결합
- 내부적으로 transition state를 사용
윈도우 함수
N rows -> N rows
SELECT emp_id,
salary,
avg(salary) OVER (PARTITION BY dept_id)
FROM emp;
- 분석/통계에 특화되어있습니다.