#snowflake-cloud-data-platform
Вопрос:
Я ввожу данные в свою базу данных холдинга «Premium_DB» в snowflake. Но я заметил упущение в числовых столбцах. По какой-то причине snowflake удаляет десятичные дроби из базы данных хранения. Например: Это мой текущий результат
(Selected column) (Input Column)
"GrossPremium" "Gross_Premium"
30.52 30
4.1 4
ожидаемый результат:
(Selected column) (Input Column)
"GrossPremium" "Gross_Premium"
30.52 30.52
4.1 4.1
Есть ли какой-нибудь способ заархивировать это? Большое вам спасибо за вашу помощь.
set Reference_Org_Var = 'EXCHANGE_BEN';
set Load_Date_Var = current_date();
insert into PREMIUM_DB(Issue_State, Gross_Premium, Commissions, Premium_Tax, Carrier_Fee, Admin_Fee,
Net_Premium, REPORT_DATE, FileRecdDate, Reference_Org, LoadDt
)
select STATE, GROSSPREMIUM, COMMISSION, PREMIUMTAX, CARRIERFEE, ADMINISTRATOR,
NETPREMIUM, REPORT_DATE, FILERECDDATE, $Reference_Org_Var,
$Load_Date_Var
from EXCHANGE_BEN_PREM;
CREATE OR REPLACE TABLE PREMIUM_DB
(Reference_Org varchar,
Gross_Premium number,
Commissions number,
TPA_Fee number,
Premium_Tax number,
Carrier_Fee number,
Admin_Fee number,
Net_Premium number,
Report_Date date,
LoadDt date,
FileRecdDate date,
);
Комментарии:
1. Как эти столбцы вводятся в исходной и целевой таблицах?
2. Можете ли вы поделиться определением таблицы? Как вы определили столбец Gross_Premium?
3. Все они определяются как «Число».
4. @JNevill Исходная таблица загружается непосредственно в snowflake с помощью Matillion.
Ответ №1:
Ключевым моментом является тип данных:
Точность — Общее количество разрешенных цифр.
Шкала — количество цифр, разрешенных справа от десятичной точки.
По умолчанию точность равна 38, а масштаб равен 0 (т. Е. ЧИСЛО(38, 0)).
Я предлагаю изменить: Gross_Premium number
на Gross_Premium number(38, 2)
.
Подробности: https://docs.snowflake.com/en/sql-reference/data-types-numeric.html#data-types-for-fixed-point-numbers