У меня есть необработанная таблица (сотни миллионов строк, но я буду обрабатывать только 1 день за время, которое меньше миллиона), в которой есть столбцы, которые фиксируют количество секунд, в течение которых произошло событие.
dimensions, status_1_time, status_2_time, ..., status_10_time
Проблема в том, что определения статусов не являются единообразными.Попытки стандартизировать их исторически не увенчались успехом.
Существует ли эффективный способ использования таблицы поиска для присоединения к исходной таблице, где люди могли бы сопоставить код состояния со стандартным определением?Таким образом, в каждой строке будет указан соответствующий код состояния, который представляет это стандартное имя состояния.
dimensions, lunch_time, paid_training_time, ..., break_time
2, 0, ..., 10
1, 4, ..., 2
Мой наивный подход к тестированию заключался в том, чтобы иметь оператор CASE (10 кодов и 10 различных столбцов состояния делают запрос довольно длинным инемного повторяется).
(CASE
WHEN lunch_time = 1 THEN status_1_time
WHEN lunch_time = 2 THEN status_2_time
...
WHEN lunch_time = 10 THEN status_time
END) AS lunch_break_time
У кого-нибудь есть предложения по улучшению подхода или более эффективному способу сделать это?В конце я хочу отправить отчет со столбцами, такими как «Время перерыва на обед», «Время оплачиваемого обучения», «Время перерыва» и пропустить необработанные столбцы status_time.