homework, pet project DE Dmitry_Medvedev #1
@@ -7,7 +7,7 @@ ON CLUSTER clickhouse_cluster
|
||||
user_id String,
|
||||
balance String,
|
||||
created_at String
|
||||
) ENGINE = MergeTree ORDER BY tuple();
|
||||
) ENGINE = MergeTree ORDER BY tuple();
|
||||
|
||||
SELECT DISTINCT
|
||||
toDecimal64OrNull(balance, 2) AS balance_decimal,
|
||||
@@ -23,4 +23,37 @@ WHERE
|
||||
Следующие два метода по сути своей преобразование типа данных с условием ИЛИ, то есть:
|
||||
toDecimal64OrNull(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