[SQL] HAVING COUNT, LIMIT, COALESCE

coldrice99·2024년 8월 5일
0

HAVING COUNT, LIMIT, COALESCE

SQL에서 HAVING COUNT, LIMIT, COALESCE는 각각 그룹화된 데이터 필터링, 결과 제한, NULL 값을 처리하는 데 사용되는 중요한 문법이다. 각 문법에 대한 설명과 예제를 소개한다.


HAVING COUNT

HAVING 절은 GROUP BY 절과 함께 사용되어 그룹화된 데이터에 대한 조건을 지정하는 데 사용된다. 주로 COUNT, SUM, AVG 등의 집계 함수와 함께 사용된다.

예제

sales 테이블이 다음과 같다고 가정한다.

idproductcategoryamount
1AX100
2BX150
3CY200
4DY250
5EX300

다음 SQL 쿼리는 각 카테고리별로 두 개 이상의 제품을 가진 카테고리와 그 제품 수를 반환한다.

SELECT category, COUNT(*) as product_count
FROM sales
GROUP BY category
HAVING COUNT(*) >= 2;

결과

categoryproduct_count
X3
Y2

LIMIT

LIMIT 절은 쿼리 결과에서 반환되는 행의 수를 제한하는 데 사용된다. 주로 페이징이나 특정 수의 결과만 필요할 때 사용된다.

예제

다음 SQL 쿼리는 sales 테이블에서 금액이 가장 큰 상위 두 개의 판매 기록을 반환한다.

SELECT * 
FROM sales
ORDER BY amount DESC
LIMIT 2;

결과

idproductcategoryamount
5EX300
4DY250

COALESCE

COALESCE 함수는 인수 중에서 첫 번째로 NULL이 아닌 값을 반환하는 데 사용된다. 여러 컬럼이나 표현식을 평가할 때 유용하다.

예제 1

users 테이블이 다음과 같다고 가정한다.

idfirst_namemiddle_namelast_name
1JohnNULLDoe
2NULLAliceSmith
3BobNULLNULL

다음 SQL 쿼리는 사용자의 전체 이름을 반환한다. 중간 이름이 없으면 이름과 성을 결합하고, 이름이나 성이 없는 경우에도 이를 처리한다.

SELECT id, 
       COALESCE(first_name, middle_name, last_name) as name
FROM users;

결과

idname
1John
2Alice
3Bob

예제 2

COALESCE는 NULL 값을 특정 값으로 변환하는 데 사용하기도 한다.

employees 테이블이 다음과 같다고 가정한다.

idfirst_namemiddle_namelast_namesalary
1JohnNULLDoe50000
2NULLAliceSmithNULL
3BobNULLNULL70000

다음 SQL 쿼리는 각 직원의 이름과 급여를 반환하며, 급여가 NULL인 경우 기본값으로 0을 반환한다.

SELECT id, 
       COALESCE(first_name, middle_name, last_name) as name,
       COALESCE(salary, 0) as salary
FROM employees;

결과

idnamesalary
1John50000
2Alice0
3Bob70000

이 예제는 COALESCE를 사용하여 NULL 값을 특정 값(이 경우 0)으로 변환하는 방법을 보여준다. salary 컬럼에 NULL이 있을 경우, COALESCE(salary, 0)는 0을 반환한다. 이는 데이터베이스 쿼리를 보다 유연하고 안전하게 만드는 데 유용하다.

profile
서두르지 않으나 쉬지 않고

0개의 댓글