[sql] LEFT JOIN을 활용한 집계 함수 사용법
데이터베이스에서 두 개의 테이블을 결합하고, 그 결과로 집계 함수를 적용하는 것은 매우 일반적입니다. 특히, LEFT JOIN을 사용하여 한 테이블의 모든 레코드와 다른 테이블의 매칭되는 레코드를 포함할 수 있습니다. 이 글에서는 LEFT JOIN과 함께 사용되는 일부 일반적인 집계 함수에 대해 살펴보겠습니다.
LEFT JOIN과 함께 사용되는 집계 함수
COUNT 함수
SELECT column_name, COUNT(table2.column_name)
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
GROUP BY column_name;
위의 쿼리는 table1
의 각 레코드와 table2
의 매칭되는 레코드 수를 세는 것을 보여줍니다.
SUM 함수
SELECT column_name, SUM(table2.amount)
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
GROUP BY column_name;
위의 쿼리는 table2.amount
의 값을 table1
의 각 그룹에 대해 합하는 예시입니다.
AVG 함수
SELECT column_name, AVG(table2.value)
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
GROUP BY column_name;
위의 쿼리는 table2.value
의 값을 table1
의 각 그룹에 대해 평균내는 방법을 보여줍니다.
MAX 함수
SELECT column_name, MAX(table2.date)
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
GROUP BY column_name;
위의 쿼리는 각 그룹의 최대 날짜를 찾는 것을 나타냅니다.
요약
LEFT JOIN과 집계 함수를 함께 사용하면 두 개의 테이블을 효율적으로 결합하고, 원하는 데이터의 집계를 신속하게 수행할 수 있습니다. 경우에 따라 효율적인 쿼리 작성을 위해 인덱스를 고려하는 것이 좋습니다.
참고 문헌:
- MySQL 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/join.html
- PostgreSQL 공식 문서: https://www.postgresql.org/docs/current/tutorial-join.html