Nhập môn Mô hình dữ liệu trong Snowflake
Nuno Rocha
Director of Engineering






SELECT DISTINCT category
FROM allproducts;

SELECT TRIM(category)
FROM allproducts;

SELECT TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;

CREATE OR REPLACE TABLE categories (
category_id NUMBER(10,0) PRIMARY KEY,
category VARCHAR(255)
);
INSERT INTO: Lệnh SQL chèn dòng mới vào bảng.INSERT INTO categories (category_id, category)
___;
INSERT INTO categories (category_id, category)
SELECT
___,
___
FROM allproducts;
INSERT INTO categories (category_id, category)
SELECT
___,
TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;
INSERT INTO categories (category_id, category)
SELECT
ROW_NUMBER() OVER (ORDER BY TRIM(f.value)),
TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;
INSERT INTO categories (category_id, category)
SELECT
ROW_NUMBER() OVER (ORDER BY TRIM(f.value)),
TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f
GROUP BY TRIM(f.value);

INSERT INTO: Lệnh SQL để chèn dòng mớiTRIM: Hàm SQL xóa khoảng trắng đầu-cuốiLATERAL FLATTEN(INPUT => SPLIT()): Hàm Snowflake tách giá trị thành nhiều dòngROW_NUMBER() OVER (ORDER BY): Hàm SQL tạo số thứ tự tuần tựGROUP BY: Mệnh đề SQL gộp dữ liệu cùng giá trị-- Nạp một thực thể bằng dữ liệu từ kết quả truy vấn
INSERT INTO table_name (column_name, other_columns)
SELECT
-- Tạo giá trị duy nhất bằng số thứ tự dòng
ROW_NUMBER() OVER (ORDER BY TRIM(alias.value)),
TRIM(alias.value)
FROM another_table,
-- Tách giá trị văn bản theo dấu phân cách
LATERAL FLATTEN(INPUT => SPLIT(another_table.column_name, 'delimiter_value'))alias
-- Gộp dữ liệu để đảm bảo giá trị duy nhất
GROUP BY TRIM(alias.value);
Nhập môn Mô hình dữ liệu trong Snowflake