我有一张原始表(数亿行,但我只会处理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列。