junome

SQL 내장함수

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;
  • 분석/통계에 특화되어있습니다.