Числові обчислення

Типи даних і функції в Snowflake

Jake Roach

Field Data Engineer

Числові обчислення

Три види числових обчислень і перетворень.

Типи даних і функції в Snowflake

Порівняння числових значень

Оператори порівняння дають змогу зіставляти або оцінювати кілька значень

  • =, чи два значення рівні?
  • !=, чи два значення не рівні?
  • <, чи одне значення менше за інше?
  • >, чи одне значення більше за інше?
  • <= менше або дорівнює
  • >=, більше або дорівнює

$$

            Повертає true або false!

$$

        1 = 1,   -- true

1 != 1, -- false
1 < 2, -- true
1 > 2, -- false
1 <= 2, -- true
2 >= 2 -- true
... WHERE 1 = 1 -- Фільтрує записи
Типи даних і функції в Snowflake

Арифметика в Snowflake

SELECT

    <#> + <#>,        -- 2 + 2  ->  4
    <field> - <#>,    -- 4 - 1  ->  3
    <field> * <#>,    -- 3 * 2  ->  6
    <field> / <#>,    -- 9 / 3  ->  3

                ...
  • Можна виконувати між будь-якими комбінаціями # і field

Арифметичні оператори дають змогу виконувати «математику» з числовими значеннями

$$

  • +, додавання
  • -, віднімання
  • *, множення
  • /, ділення
Типи даних і функції в Snowflake

Арифметика

SELECT
    student_name, exam_score,

exam_score + 10 AS add_points, -- Додати 10 балів до оцінки кожного студента
exam_score * curve AS curved, -- Застосувати криву +10%
exam_score / 2 AS weighted -- Зменшити вагу тесту
FROM STUDENTS.grades;
              student_name  |   exam_score   |  add_points  |  curved  |  weighted  
             -------------- | -------------- | ------------ | -------- | ----------
               Ryan         |       78       |      88      |   85.8   |     39
               Tatiana      |       89       |      99      |   97.9   |    44.5
               Pankaj       |       74       |      84      |   81.4   |     37
Типи даних і функції в Snowflake

Агрегатні функції формують зведені дані

Ілюстрація агрегування записів за GROUP BY.

Типи даних і функції в Snowflake

Агрегатні функції

 SELECT

<1>,
SUM(<field>), -- Повертає суму стовпця
AVG(<field>) -- Знаходить середнє значення стовпця
FROM ...
GROUP BY <1>;

Потрібно GROUP BY для неагрегованих полів!

  • GROUP BY ALL
Типи даних і функції в Snowflake

Агрегатні функції

SELECT
    exam_name,

    SUM(correct_answers) AS total_correct_answers,      -- Загальна кількість правильних
    AVG(exam_score) AS avg_exam_score,                  -- Середня оцінка за іспит


ROUND(AVG(exam_score), 1) AS rounded_exam_score -- ROUND(<value>, <n>)
FROM STUDENTS.grades GROUP BY exam_name; -- GROUP BY для агрегування записів, інакше помилка

ROUND() приймає значення для заокруглення і кількість цифр після коми

Типи даних і функції в Snowflake

Агрегатні функції

   exam_name    |  total_correct_answers  |  avg_exam_score  |  rounded_avg_exam_score 
  ------------- | ----------------------- | ---------------- | ------------------------ 
   Calculus I   |           871           |      89.11111    |           89.1     
   Biology      |           776           |      87.47777    |           87.5
   English III  |           541           |      91.33333    |           91.3
   Python       |          1179           |      92.78787    |           92.8
   Finance      |           349           |      96.14156    |           96.1

Значення отримано за допомогою:

  • SUM(correct_answers)
  • AVG(exam_score)
  • ROUND(AVG(exam_score), 2)
Типи даних і функції в Snowflake

Давайте потренуємось!

Типи даних і функції в Snowflake

Preparing Video For Download...