Задача 4
This commit is contained in:
@@ -88,4 +88,30 @@ GROUP BY
|
|||||||
Преобразовал записи из набора "каких-то" букв (String) в массив строк Array(String). Нашел пользователей в новом массиве Array(String), совершивших действие "purchase".
|
Преобразовал записи из набора "каких-то" букв (String) в массив строк Array(String). Нашел пользователей в новом массиве Array(String), совершивших действие "purchase".
|
||||||
Просто написать actions = 'purchase' не получится, так как изначально actions просто (String) и соответсвенно "["login", "purchase", "logout"]" нельзя сравнить с "purchase". Поэтому сначала преобразовываем в массив, а потом с функцией has(array, elem) ищем то, что нужно.
|
Просто написать actions = 'purchase' не получится, так как изначально actions просто (String) и соответсвенно "["login", "purchase", "logout"]" нельзя сравнить с "purchase". Поэтому сначала преобразовываем в массив, а потом с функцией has(array, elem) ищем то, что нужно.
|
||||||
То есть менять бы не пришлось, если бы в actions было изначально разные значения в каждой строке ("login", "purchase" или "logout")
|
То есть менять бы не пришлось, если бы в actions было изначально разные значения в каждой строке ("login", "purchase" или "logout")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
--Задача 4
|
||||||
|
DROP TABLE IF EXISTS sensor_data ON CLUSTER clickhouse_cluster;
|
||||||
|
|
||||||
|
CREATE TABLE sensor_data
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
(
|
||||||
|
sensor_id UInt32,
|
||||||
|
value Float64,
|
||||||
|
status Enum('ok' = 1, 'error' = 2)
|
||||||
|
) ORDER BY sensor_id;
|
||||||
|
|
||||||
|
--Тест данные
|
||||||
|
INSERT INTO sensor_data (sensor_id, value, status) VALUES
|
||||||
|
(1, 25.5, 'ok'),
|
||||||
|
(2, 120.75, 'error'),
|
||||||
|
(3, 15.0, 1),
|
||||||
|
(4, 9999999.99, 'ok'),
|
||||||
|
(5, 0.001, 'ok');
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
toString(status) AS status_string,
|
||||||
|
avg(value) AS avg_value --Среднее значение value для каждого status
|
||||||
|
FROM sensor_data
|
||||||
|
WHERE accurateCastOrNull(value, 'Decimal(10,2)') IS NOT NULL --Фильтруем строки, где value нельзя преобразовать в Decimal(10,2)
|
||||||
|
GROUP BY status_string;
|
||||||
Reference in New Issue
Block a user