Snowflake SQL データ型

Snowflake SQL 入門

George Boorman

Senior Curriculum Manager, DataCamp

主なデータ型

カテゴリ データ型
テキスト/文字列 VARCHAR, CHAR, TEXT
Snowflake SQL 入門

主なデータ型

カテゴリ データ型
テキスト/文字列 VARCHAR, CHAR, TEXT
数値 INTEGER
Snowflake SQL 入門

主なデータ型

カテゴリ データ型
テキスト/文字列 VARCHAR, CHAR, TEXT
数値 INTEGER
ブール値 BOOLEAN
Snowflake SQL 入門

主なデータ型

カテゴリ データ型
テキスト/文字列 VARCHAR, CHAR, TEXT
数値 INTEGER
ブール値 BOOLEAN
日付/時刻 DATE, TIME, TIMESTAMP
1 https://docs.snowflake.com/en/sql-reference/intro-summary-データ-types
Snowflake SQL 入門

Snowflake SQL データ型 - NUMBER

NUMBER(p, s)

  • NUMERIC は Snowflake で NUMBER の別名として機能します
  • p = 精度; s = スケール
  • 最大 p および s の値: 38
    • 超過すると丸めが発生します!
Snowflake SQL 入門

Snowflake SQL データ型 - TIMESTAMP_LTZ

  • TIMESTAMP_LTZ
    • DATETIMEを現地のタイムゾーンで組み合わせます
    • 形式: YYYY-MM-DD HH:MI:SS
CREATE TABLE orders (
  -- Timestamp with local time zone
  order_timestamp TIMESTAMP_LTZ
  )

タイムスタンプのローカルタイムゾーンデータ

Snowflake SQL 入門

データ型変換 - 何?

  • データをある種類から別の種類へ変換する

テキストから数値への注文数量列データ

Snowflake SQL 入門

データ型変換 - なぜ?

  • 業績の向上
  • データの正確性と整合性
  • データ品質
Snowflake SQL 入門

データ型変換 - 方法は?

  1. CAST

    • 構文:

      • CAST( <source_data/column> AS <target_data_type> )

      • CAST('80' AS INT)

  2. ::

    • 構文:

      • <source_data/column>::<target_data_type>

      • '80'::INT

Snowflake SQL 入門

CAST

SELECT CAST(order_timestamp AS DATE) 
       AS order_date 
FROM orders
Snowflake SQL 入門

CAST 結果

casting 前の order_timestamp_ltz

注文日データをキャストした後

Snowflake SQL 入門

変換関数

  • 例: TO_VARCHAR, TO_DATE

TO_VARCHAR

 - _構文:_
  • TO_VARCHAR( <expr> )

    • expr - 数値、タイムスタンプなど

    • 結果:VARCHAR

例:

SELECT TO_VARCHAR(86)

結果:

86

Snowflake SQL 入門

データ型の確認

DESC TABLE orders
name        type            kind     null?    default     primary key    
ORDER_ID    NUMBER(38,0)    COLUMN   N        null        Y    
ORDER_DATE  DATE            COLUMN   Y        null        N    
ORDER_TIME  TIME(9)         COLUMN   Y        null        N
Snowflake SQL 入門

練習しましょう!

Snowflake SQL 入門

Preparing Video For Download...