Эффективно ли сопоставить определения со столбцами в Postgres? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть необработанная таблица (сотни миллионов строк, но я буду обрабатывать только 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...