c5a5df7c25
2) Сделал домашку в Типы данных - Задание 1
26 lines
1023 B
SQL
26 lines
1023 B
SQL
--Типы данных
|
|
|
|
--Задача 1
|
|
CREATE TABLE raw_data
|
|
ON CLUSTER clickhouse_cluster
|
|
(
|
|
user_id String,
|
|
balance String,
|
|
created_at String
|
|
) ENGINE = MergeTree ORDER BY tuple();
|
|
|
|
SELECT DISTINCT
|
|
toDecimal64OrNull(balance, 2) AS balance_decimal,
|
|
toDateTime64OrNull(created_at, 3) AS created_at_date
|
|
FROM raw_data
|
|
WHERE
|
|
toDecimal64OrNull(balance, 2) IS NOT NULL
|
|
AND toDateTime64OrNull(created_at, 3) IS NOT NULL
|
|
|
|
/*
|
|
CAST(balance AS Decimal(10, 2)) - этом случае будет ошибка, так как данный метод не поддеживает NULL
|
|
|
|
Следующие два метода по сути своей преобразование типа данных с условием ИЛИ, то есть:
|
|
toDecimal64OrNull(balance, 2) - в этом методе на выходе будут корректные данные, в противном случае NULL
|
|
toDecimal64OrZero(balance, 2) - аналогично с NULL, только будет ноль.
|
|
*/ |