개발/데이터베이스
[PostgreSQL] DISTINCT, HAVING
고등어찌짐
2022. 4. 27. 22:15
DISTINCT
column1 에 있는 값들을 중복을 모두 제거하고 보여준다.
SELECT DISTINCT column1 FROM table1;
GROUP BY, HAVING
GROUP BY 쿼리를 이용해 데이터를 집계하고, 집계된 이후의 데이터 내에서 조건 검색을 할 경우에 HAVING 을 사용한다. 반면 WHERE 는 데이터가 집계되기 이전의 데이터 내에서 조건을 필터링한다는 차이가 있다.
( 쿼리 연산은 FROM - WHERE - GROUP BY - HAVING - SELECT - DISTINCT - ORDER BY - LIMIT 순으로 처리된다. )
SELECT author
FROM book
WHERE author LIKE 'Kim%'
GROUP BY author
HAVING count(*) > 3;
WHERE 절 내에 서브쿼리를 사용한다면, GROUP BY 하지 않고도 데이터 집계함수를 사용할 수 있다.
SELECT name FROM book
WHERE price <= (
SELECT avg(price) FROM book
);
#참조
모두를 위한 PostgreSQL