Типы данных v.2
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
--Типы данных
|
||||||
|
|
||||||
|
--Задача 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, только будет ноль.
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user