數值資料型別

Snowflake 的資料型別與函式

Jake Roach

Field Data Engineer

數值資料型別

$$

                           NUMBER

  • 控制數值的大小
  • DECIMALINTEGERNUMBER 同義

$$

126          -- 整數
7.99         -- 金額
.000191      -- 小數
-46.88       -- 負值
563719100    -- ID

...

1.234E+2     -- 數值常數
Snowflake 的資料型別與函式

精度與小數位數(scale)

NUMBER(<precision>, <scale>)

            Precision 是數字的總位數

            Scale 是小數點之後的位數

$$

-- Precision: 4, Scale: 2
NUMBER(4, 2)

1.75 -- 可以! 624.99 -- 無法容納
Snowflake 的資料型別與函式

精度與小數位數(scale)

-- Precision: 3, Scale: 0
NUMBER(3, 0)

42     -- 可以!
1000   -- 無法容納
41.99  -- 無法容納

$$

$$

  • NUMBER 的預設為 NUMBER(38, 0)
Snowflake 的資料型別與函式

定義數值資料型別

CREATE TABLE sales (
    id NUMBER,               -- 一般數值資料

price NUMBER(5, 2), -- 金額,最大到 $999.99
quantity NUMBER(4, 0) -- 整數,小於 10,000
);
DESCRIBE TABLE schema.table;
                         name    |     type     |   kind   | ...  
                      ---------- | ------------ | -------- | ---  
                          id     | NUMBER(38,0) |  COLUMN  | ...  
                         price   | NUMBER(5,2)  |  COLUMN  | ...  
                       quantity  | NUMBER(4,0)  |  COLUMN  | ...
Snowflake 的資料型別與函式

FLOAT 資料型別

$$

  • 用於科學與統計計算
  • 「近似」數值型別
  • 可能出現四捨五入誤差
  • 速度快,能處理極端範圍!

$$

               0.0000000120056

CREATE TABLE metrics (
    id NUMBER,
    accuracy FLOAT
);
DESCRIBE TABLE schema.table;
     name    |       type     | ...  
  ---------- | -------------- | ---  
      id     |  NUMBER(38,0)  | ...  
   accuracy  |  FLOAT         | ...
Snowflake 的資料型別與函式

操作數值資料

  • 你可以用多種方式處理數值資料

$$

  • 使用 =!=<> 等工具進行比較
  • 進行 +-/*算術運算
  • SUMAVGCOUNT 進行彙總
  • MEDIANSTDDEVCORR 計算摘要統計

$$

  • ……還有很多!
Snowflake 的資料型別與函式

一起來練習吧!

Snowflake 的資料型別與函式

Preparing Video For Download...