【问题标题】:Mapping two columns into one column in Athena在 Athena 中将两列映射为一列
【发布时间】:2020-09-29 22:06:09
【问题描述】:

我在 Athena 中有这样的数据:

| shop_id  | date        | provider | provider_new |  sales
| 123      | 2020-06-01  |     X    |              |   100
| 124      | 2020-07-01  |     Y    |              |   200
| 125      | 2020-08-01  |          |      Z       |   300
| 126      | 2020-09-01  |          |      T       |   400

但是,表所有者将 provider 更改为 provider_new。因此,在 2020-08-01 之后,提供者返回 NULL。这是我的查询:

SELECT date,
         shop_id,
             
    CASE
    WHEN provider = 'X' THEN
    'X'
    WHEN provider = 'Y' THEN
    'Y'
    WHEN provider LIKE 'Z%' THEN
    'Z'
    WHEN provider LIKE 'T%' THEN
    'T'
    ELSE 'M'
    END AS provider_group,
         SUM(sales) AS sales
FROM X
GROUP BY  1, 2

如何将这两列映射为一列?

提前致谢。

【问题讨论】:

    标签: sql case presto amazon-athena sql-null


    【解决方案1】:

    你想要coalesce()吗?

    coalesce(provider, provider_new)
    

    coalesce() 返回给定参数的第一个非null 值。

    【讨论】:

    • 感谢您的评论。在哪里将其添加到我的查询中? @GMB
    • @datazang:您可以将每次出现的provider 替换为coalesce(provider, provider_new)
    猜你喜欢
    • 2020-01-17
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2022-08-15
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多