Snowflake'te koşullu mantık uygulama

Snowflake'te Veri İşleme

Jake Roach

Field Data Engineer

CASE ifadeleriyle toplama

CASE içeren sorgular yine de toplama fonksiyonlarını kullanabilir.

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

$$

Yalnız GROUP BY eklemeyi unutmayın!

Toplama ve gruplama içeren bir CASE ifadesi iskeleti

Snowflake'te Veri İşleme

CASE ifadeleriyle toplama

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'te Veri İşleme

CASE ifadeleriyle toplama

Her mevsim ve yıl için ortalama sıcaklığı bulan bir sorgunun sonuçları

Snowflake'te Veri İşleme

CASE alanlarını birleştirerek toplama

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'te Veri İşleme

CASE alanlarını birleştirerek toplama

Mevsime göre ortalama sıcaklık ilişkisini gösteren tablo

Snowflake'te Veri İşleme

JOIN'ler

SELECT
    ...

    -- Define a CASE statement
    CASE ...

FROM <left_table>

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

CASE ifadeleri iki farklı tablodan birleştirilen verilerle kurulabilir.

  • Bir CASE ifadesinde birden fazla tablodan sütun kullanın
  • LEFT, RIGHT, INNER, OUTER, vb.
  • Toplama fonksiyonları dâhil diğer araçlarla birleştirin

$$

$$

                                          Hadi bakalım!

Snowflake'te Veri İşleme

Üniversite kredisi durumunu belirleme

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'te Veri İşleme

Üniversite kredisi durumunu belirleme

JOIN edilen students ve student_courses tablolarına karşı yapılan sorgunun sonuçları

Snowflake'te Veri İşleme

Hadi pratik yapalım!

Snowflake'te Veri İşleme

Preparing Video For Download...