【发布时间】:2020-06-18 13:21:02
【问题描述】:
我正在使用 Presto。我想使用不互斥的不同条件为一行分配多个“标签”。
例如,假设有一个有 4 列的表:
| food | color | type | on_sale |
|------------+--------+-------------+---------|
| apple | red | fruit | TRUE |
| banana | yellow | fruit | FALSE |
| cornbread | yellow | baked goods | TRUE |
| apple pie | brown | baked goods | TRUE |
我想用我定义的标签来标记每种食物,例如red food、red food on sale、yellow baked goods、yellow food on_sale。在示例中,apple 匹配两个标签:red food 和 red food on sale。
我不能使用CASE(如下所示),因为只有在我真正希望将其标记为两者时,我才会返回“红色食物”。
CASE
WHEN color = 'red' THEN 'red food'
WHEN color = 'red' AND `on_sale` = TRUE THEN 'red food on sale'
(and so on)
理想情况下,我想返回一个数组,该数组可以捕获超过 1 个“标签”或重复列,每个标签只有一行,但我不知道该怎么做。有什么想法吗?
提前致谢!
【问题讨论】: