Snowflake에서 조건 로직 적용

Snowflake에서 데이터 조작

Jake Roach

Field Data Engineer

CASE와 집계

CASE를 사용한 쿼리에서도 집계 함수를 사용할 수 있습니다.

  • SUM()
  • AVG()
  • MIN()
  • MAX()
  • ...
  • MODE()

$$

비집계 필드는 GROUP BY에 포함하세요!

집계와 그룹화를 포함한 CASE 문 스켈레톤

Snowflake에서 데이터 조작

CASE와 집계

SELECT
    CASE
        WHEN month_num IN (12, 1, 2) THEN 'Winter'
        WHEN month_num IN (3, 4, 5) THEN 'Spring'
        WHEN month_num in (6, 7, 8) THEN 'Summer'
        ELSE 'Fall'
    END AS season,

AVG(temperature) AS average_temperature, -- Manipulate data with AVG()
year_num FROM weather GROUP BY season, year_num; -- Remember to group by non-aggregated fields
Snowflake에서 데이터 조작

CASE와 집계

계절·연도별 평균 기온을 구한 쿼리 결과

Snowflake에서 데이터 조작

CASE 결과 집계하기

SELECT
    season,
    AVG(
        CASE
            WHEN season = 'Winter' THEN temperature - 30
            WHEN season IN ('Spring', 'Fall') THEN temperature - 60
            WHEN season = 'Summer' THEN temperature - 75
        END
    ) AS relation_to_average_temperature
FROM weather
GROUP BY season;
Snowflake에서 데이터 조작

CASE 결과 집계하기

계절별 평균 기온의 관계를 보여주는 표

Snowflake에서 데이터 조작

JOIN

SELECT
    ...

    -- Define a CASE statement
    CASE ...

FROM <left_table>

-- JOIN new records to existing table
LEFT JOIN <right_table> 
    ... 
;

CASE 문은 서로 다른 두 테이블을 JOIN한 데이터로 구성할 수 있습니다.

  • CASE에서 둘 이상의 테이블 컬럼 사용
  • LEFT, RIGHT, INNER, OUTER
  • 집계 함수 등과 함께 사용 가능

$$

$$

                                          확인해 봅시다!

Snowflake에서 데이터 조작

대학 학점 인정 여부 판단

SELECT
    students.student_name,
    student_courses.course_name,

-- Evaluate both the student's grade number and grade for the course CASE WHEN students.grade_num = 12 AND student_courses.grade > 90 THEN 'College Credit Eligible' ELSE 'Too Early for College Credit' END AS college_credit_status
FROM student_courses LEFT JOIN students ON student_courses.student_id = students.student_id;
Snowflake에서 데이터 조작

대학 학점 인정 여부 판단

JOIN된 students와 student_courses 테이블에 대한 쿼리 결과

Snowflake에서 데이터 조작

실습해 봅시다!

Snowflake에서 데이터 조작

Preparing Video For Download...