+Задание 2 в Типы данных - Homework
This commit is contained in:
@@ -7,7 +7,7 @@ ON CLUSTER clickhouse_cluster
|
|||||||
user_id String,
|
user_id String,
|
||||||
balance String,
|
balance String,
|
||||||
created_at String
|
created_at String
|
||||||
) ENGINE = MergeTree ORDER BY tuple();
|
) ENGINE = MergeTree ORDER BY tuple();
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
toDecimal64OrNull(balance, 2) AS balance_decimal,
|
toDecimal64OrNull(balance, 2) AS balance_decimal,
|
||||||
@@ -23,4 +23,37 @@ WHERE
|
|||||||
Следующие два метода по сути своей преобразование типа данных с условием ИЛИ, то есть:
|
Следующие два метода по сути своей преобразование типа данных с условием ИЛИ, то есть:
|
||||||
toDecimal64OrNull(balance, 2) - в этом методе на выходе будут корректные данные, в противном случае NULL
|
toDecimal64OrNull(balance, 2) - в этом методе на выходе будут корректные данные, в противном случае NULL
|
||||||
toDecimal64OrZero(balance, 2) - аналогично с NULL, только будет ноль.
|
toDecimal64OrZero(balance, 2) - аналогично с NULL, только будет ноль.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
--Задача 2
|
||||||
|
CREATE TABLE events
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
(
|
||||||
|
event_id String,
|
||||||
|
event_date String, -- форматы: "2023-01-01", "01.02.2023", "invalid"
|
||||||
|
event_time String -- форматы: "12:30:45", "25:99:99"
|
||||||
|
)
|
||||||
|
ENGINE = MergeTree
|
||||||
|
ORDER BY event_id;
|
||||||
|
|
||||||
|
--Заполнил данными для проверки
|
||||||
|
INSERT INTO events (event_id, event_date, event_time) VALUES
|
||||||
|
('1', '2023-01-01', '12:30:45'),
|
||||||
|
('2', '01.02.2023', '08:15:00'),
|
||||||
|
('3', 'invalid', '25:99:99'),
|
||||||
|
('4', '2023-05-20', 'invalid'),
|
||||||
|
('5', '31.12.2023', '23:59:59');
|
||||||
|
|
||||||
|
SELECT * FROM events;
|
||||||
|
|
||||||
|
SELECT DISTINCT
|
||||||
|
toDate(DateTime_Valid) AS Event_Date,
|
||||||
|
toHour(DateTime_Valid) AS Event_Hour,
|
||||||
|
DateTime_Valid
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
parseDateTimeBestEffortOrNull(concat(event_date, ' ', event_time)) AS DateTime_Valid
|
||||||
|
FROM events
|
||||||
|
)
|
||||||
|
WHERE DateTime_Valid IS NOT NULL;
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
Reference in New Issue
Block a user