Tính toán số

Kiểu dữ liệu và Hàm trong Snowflake

Jake Roach

Field Data Engineer

Tính toán số

Ba dạng tính toán và thao tác số học.

Kiểu dữ liệu và Hàm trong Snowflake

So sánh giá trị số

Toán tử so sánh giúp so hoặc đánh giá nhiều giá trị

  • =, hai giá trị có bằng nhau không?
  • !=, hai giá trị có khác nhau không?
  • <, một giá trị có nhỏ hơn giá trị khác không?
  • >, một giá trị có lớn hơn giá trị khác không?
  • <= nhỏ hơn hoặc bằng
  • >=, lớn hơn hoặc bằng

$$

            Trả về true hoặc false!

$$

        1 = 1,   -- true

1 != 1, -- false
1 < 2, -- true
1 > 2, -- false
1 <= 2, -- true
2 >= 2 -- true
... WHERE 1 = 1 -- Lọc bản ghi
Kiểu dữ liệu và Hàm trong Snowflake

Số học trong Snowflake

SELECT

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

                ...
  • Có thể thực hiện giữa hoán vị của #field

Toán tử số học giúp thực hiện phép “toán” với giá trị số

$$

  • +, cộng
  • -, trừ
  • *, nhân
  • /, chia
Kiểu dữ liệu và Hàm trong Snowflake

Số học

SELECT
    student_name, exam_score,

exam_score + 10 AS add_points, -- Cộng 10 điểm cho mỗi sinh viên
exam_score * curve AS curved, -- Nắn điểm thêm 10%
exam_score / 2 AS weighted -- Giảm trọng số của bài kiểm tra
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
Kiểu dữ liệu và Hàm trong Snowflake

Hàm tổng hợp tạo dữ liệu tóm tắt

Minh họa gộp nhóm GROUP BY và tổng hợp bản ghi.

Kiểu dữ liệu và Hàm trong Snowflake

Hàm tổng hợp

 SELECT

<1>,
SUM(<field>), -- Trả về tổng của một cột
AVG(<field>) -- Tìm giá trị trung bình của một cột
FROM ...
GROUP BY <1>;

Phải GROUP BY các trường không tổng hợp!

  • GROUP BY ALL
Kiểu dữ liệu và Hàm trong Snowflake

Hàm tổng hợp

SELECT
    exam_name,

    SUM(correct_answers) AS total_correct_answers,      -- Tổng số câu đúng
    AVG(exam_score) AS avg_exam_score,                  -- Điểm trung bình bài thi


ROUND(AVG(exam_score), 1) AS rounded_exam_score -- ROUND(<value>, <n>)
FROM STUDENTS.grades GROUP BY exam_name; -- GROUP BY để tổng hợp bản ghi, nếu không sẽ lỗi

ROUND() nhận giá trị cần làm tròn và số chữ số thập phân giữ lại

Kiểu dữ liệu và Hàm trong Snowflake

Hàm tổng hợp

   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

Các giá trị được tạo bởi:

  • SUM(correct_answers)
  • AVG(exam_score)
  • ROUND(AVG(exam_score), 2)
Kiểu dữ liệu và Hàm trong Snowflake

Ayo berlatih!

Kiểu dữ liệu và Hàm trong Snowflake

Preparing Video For Download...