#sql #case #presto #amazon-athena #sql-null
#sql #случай #presto #amazon-athena #sql-null
Вопрос:
У меня есть данные в 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 поставщик возвращается к нулевому значению. Вот мой запрос:
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
Как я могу сопоставить эти два столбца с одним?
Заранее спасибо.
Ответ №1:
Вы хотите coalesce()
?
coalesce(provider, provider_new)
coalesce()
возвращает первое значение, не являющееся null
значением из приведенных аргументов.
Комментарии:
1. Спасибо за ваш комментарий. Где добавить его в мой запрос? @GMB
2. @datazang: вы можете просто заменить каждое вхождение
provider
наcoalesce(provider, provider_new)
.