툴킷에 추가할 세 가지 SQL 기법

Dec 30 2022
IMHO, SQL은 데이터 엔지니어, 과학자 및 분석가가 개발해야 할 가장 중요한 기술 중 하나입니다. 저는 SQL 쿼리를 완성하고 나중에 이를 해석하는 데 수많은 시간을 보냈습니다.
DALL-E 생성 스프레이 페인트 아트

IMHO, SQL은 데이터 엔지니어, 과학자 및 분석가가 개발해야 할 가장 중요한 기술 중 하나입니다. 저는 SQL 쿼리를 완성하고 나중에 이를 해석하는 데 수많은 시간을 보냈습니다. 저는 SQL이 배우기 쉽지만 가파른 곡선이 있고 단일 작업을 수행하는 방법이 여러 가지인 경우가 많다는 것을 알게 되었습니다. 다음은 읽을 수 있는 SQL 쿼리를 작성할 때 사용하는 세 가지 기술입니다 .

진술 포함

데이터 엔지니어로서 저는 SQL에서 작업하는 많은 젊은 데이터 전문가가 WITH 문에 익숙하지 않다는 사실에 놀랐습니다. WITH 문은 복잡한 쿼리를 하위 쿼리로 구성하여 읽기 쉽게 만드는 방법입니다. 이는 많은 상황에서 유용할 수 있는 중간 쿼리 결과를 저장하는 방법을 제공합니다. 실질적으로 각 하위 쿼리를 정의하고 이름을 지정합니다. 그런 다음 최종 단순화된 select 문에서 명명된 하위 쿼리를 모두 호출합니다. 여러 가지 방법으로 WITH 문을 사용하면 쿼리 대상 임시 테이블을 만들 수 있습니다. 아래의 기본 예에서 WITH 문이 어떻게 구성되어 있는지 확인할 수 있습니다.

WITH 
  t1 AS (SELECT * FROM table1),
  t2 AS (SELECT * FROM table2)
SELECT *
FROM t1 LEFT JOIN t2
ON t1.id = t2.id;

윈도우 함수

내가 자주 사용하는 SQL 함수 중 또 다른 하나는 윈도우 함수입니다. 너무 자주 값을 하위 그룹의 평균과 비교하고 싶습니다. 이를 수행하는 한 가지 방법은 두 개의 하위 쿼리를 가지고 함께 조인하거나 R/Python에서 데이터를 가져와서 비교하는 것입니다. 그러나 윈도우 기능을 사용하여 이를 수행할 수 있습니다.

윈도우 함수는 "윈도우"라고 하는 일련의 레코드에 대해 계산을 수행하는 함수입니다. 이를 통해 쿼리 결과를 여러 범주로 분할하고 각 분할에서 계산을 수행할 수 있습니다.

예를 들어 특정 하위 집합의 평균 테스트 점수를 개별 데이터 포인트와 비교하려고 합니다. 윈도우 기능을 사용하면 단일 이벤트를 하위 그룹(또는 파티션)별로 평균과 쉽게 비교할 수 있습니다. 윈도우 함수에는 집계 함수, 순위 함수 및 오프셋 함수가 포함됩니다. 이러한 함수는 쿼리 내의 데이터를 빠르게 분석하고 요약하는 데 도움이 될 수 있습니다. 아래는 윈도우 함수로서의 평균 함수 구문입니다.

AVG() OVER (PARTITION BY [column_name] ORDER BY [column_name])



Syntax: RANK () OVER (PARTITION BY [column_name] ORDER BY [column_name])

캐스트 시도

마지막으로 TRY_CAST는 데이터베이스나 새 테이블을 처음 탐색할 때 많이 사용하는 함수입니다. TRY_CAST는 한 데이터 유형의 표현식을 다른 데이터 유형으로 변환하는 데 사용하는 함수입니다. CAST와 달리 변환에 실패해도 오류가 발생하지 않습니다. 대신 NULL 값을 반환합니다. TRY_CAST는 특정 데이터 유형에 대해 유효하지 않을 수 있는 데이터를 처리하는 데 매우 유용합니다(특히 날짜에 대해 이야기하고 있습니다). 데이터 무결성을 보장하고 출처를 알 수 없는 데이터를 처리할 때 예기치 않은 오류를 방지하기 위해 자주 사용됩니다. 프로젝트의 데이터 탐색 단계에 있을 때 TRY_CAST를 사용하는 것이 특히 유용하다는 것을 알게 되었습니다.

SELECT TRY_CAST(column_name AS data_type)
FROM table_name;

이 세 가지 SQL 기술은 데이터베이스의 데이터로 작업할 때 유용할 수 있습니다. 모든 도구나 기술과 마찬가지로 작업에 적합한 도구인지 이해해야 합니다.