해당 내용은 초보자를 위한 BigQuery(SQL) 입문 강의를 기반으로 작성되었습니다.
6-1. Intro
SQL 쿼리에서 가독성과 데이터 결과 검증은 중요한 두 가지 요소이다. 복잡한 데이터나 여러 테이블을 조합하는 쿼리에서 가독성을 확보하지 않으면, 나중에 수정이나 디버깅할 때 어려움이 생길 수 있다. 또한, 데이터 결과가 정확한지 검증하는 과정은 결과의 신뢰성을 높여준다.
6-2. 가독성을 챙기기 위한 SQL 스타일 가이드
SQL 쿼리의 가독성을 높이기 위한 스타일 가이드는 주로 다음과 같은 방법들을 포함한다.
키워드 대문자 사용: SELECT, FROM, WHERE, JOIN 등의 SQL 키워드는 모두 대문자로 작성한다. 이는 SQL 키워드가 시각적으로 더 쉽게 구분되어 가독성을 높인다.
SELECT customer_id, order_id
FROM orders
WHERE order_date > '2023-01-01';
들여쓰기 및 공백 활용: 쿼리의 각 부분(SELECT, FROM, WHERE 등)을 적절하게 들여쓰고 공백을 활용하여 구분한다. 이렇게 하면 쿼리의 구조가 명확해져서 추후 유지보수가 용이해진다.
SELECT customer_id, order_id
FROM orders
WHERE order_date > '2023-01-01'AND status = 'completed';
컬럼과 테이블 명명 규칙: 컬럼명과 테이블명을 일관되게 명명하여 쿼리 작성 시 혼동을 줄인다. 예를 들어, 테이블 이름은 복수형으로, 컬럼명은 의미 있는 단어로 설정한다.
복잡한 표현식에 괄호 사용: 복잡한 계산이나 조건문에서는 괄호를 사용해 우선순위를 명확하게 한다.
SELECT (price * quantity) AS total
FROM orders;
주석 추가: 쿼리의 중요한 부분이나 복잡한 로직에는 주석을 추가하여 설명을 덧붙인다.
-- 주문 금액 계산
SELECT customer_id, SUM(price * quantity) AS total_amount
FROM orders
GROUP BY customer_id;
6-3. 가독성을 챙기기 위한 WITH 문 & 파티션
복잡한 쿼리에서 가독성을 높이기 위해 WITH 문과 파티션을 활용할 수 있다.
WITH 문:
- WITH 구문을 사용하면 쿼리 내에서 서브쿼리를 **CTE(Common Table Expressions)**로 정의할 수 있다. 이는 쿼리를 여러 번 작성하지 않아도 되게 하며, 쿼리의 가독성을 크게 향상시킨다.
WITH customer_orders AS (
SELECT customer_id, COUNT(order_id) AS total_orders
FROM orders
GROUP BY customer_id
)
SELECT *
FROM customer_orders
WHERE total_orders > 10;
파티션:
- 윈도우 함수를 사용할 때 파티션을 이용하면 데이터를 그룹화하여 효율적으로 분석할 수 있다. 파티션은 데이터를 작은 구간으로 나누어 쿼리의 성능을 향상시킨다.
SELECT customer_id, order_id,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC) AS row_num
FROM orders;
6-4. 데이터 결과 검증 정의
데이터 결과 검증은 쿼리 결과가 정확한지, 신뢰할 수 있는지를 확인하는 과정이다. 데이터를 분석하거나 보고서를 작성할 때, 그 결과가 정확한지 검증하는 것은 매우 중요하다. 데이터 검증 방법에는 여러 가지가 있으며, 이를 통해 결과가 올바른지 확인할 수 있다.
검증 방법에는 수동 검증과 자동화된 검증이 있다. 수동 검증은 데이터를 시각적으로 확인하는 것이고, 자동화된 검증은 쿼리나 테스트 스크립트를 통해 결과가 예상대로 나오는지 확인하는 방법이다.
6-5. 데이터 결과 검증 예시
데이터 결과를 검증하는 예시로는 다음과 같은 방법들이 있다.
샘플 데이터 검증:
- 쿼리 결과에서 일부 데이터를 뽑아서 직접 확인한다. 예를 들어, 주문 테이블에서 특정 고객에 대한 주문 내역이 정확히 출력되는지 확인하는 것이다.
SELECT *
FROM orders
WHERE customer_id = 123
LIMIT 10;
합계나 카운트 검증:
- 특정 컬럼의 합계나 카운트를 계산하여, 전체 결과가 합리적인지 확인한다. 예를 들어, SUM(price)가 예상 범위 내에 있는지 검증한다.
SELECT SUM(price)
FROM orders
WHERE order_date > '2023-01-01';
기존 데이터와 비교:
- 기존의 데이터를 기준으로 결과를 비교하여 올바른지 검증한다. 예를 들어, 이전 쿼리 결과와 새로운 쿼리 결과가 일치하는지 확인한다.
테스트 케이스 작성:
- 예상되는 데이터와 쿼리 결과가 일치하는지 자동으로 검증할 수 있는 테스트 케이스를 작성한다. 이는 특히 자동화된 시스템에서 유용하다.
6-6. 정리
이번 강의에서는 가독성 있는 SQL 쿼리 작성법과 데이터 결과 검증 방법에 대해 배웠다.
- 가독성을 높이기 위해 SQL 스타일 가이드를 지키고, WITH 문과 파티션을 활용하여 복잡한 쿼리를 더 이해하기 쉽게 만들 수 있다.
- 결과 검증을 통해 쿼리의 정확성을 확인하고, 예상치 못한 오류나 잘못된 데이터가 포함되지 않도록 할 수 있다.
SQL 쿼리 작성 시 가독성에 신경을 쓰고, 데이터를 검증하는 과정을 거친다면, 더 정확하고 신뢰할 수 있는 분석 결과를 얻을 수 있다.
'DBMS > BigQuery' 카테고리의 다른 글
4회차 인프런 스터디 (0) | 2025.01.24 |
---|---|
다량의 자료를 연결하는 JOIN (0) | 2025.01.20 |
5 (0) | 2025.01.18 |
데이터를 어떻게 변환할 것인가 (0) | 2025.01.17 |
어떻게 하면 SQL 쿼리를 잘 작성하고 오류를 디버깅 할까? (0) | 2025.01.17 |