У меня есть таблица с именем SUBSCRIPTIONS
со следующими столбцами:
KEY varchar,
APPLICATION_ID varchar
SUBSCRIPTION_ID varchar
Ключом этой таблицы является столбец KEY
, который состоит из APPLICATION_ID и SUBSCRIPTION_ID в форме, как в <APPLICATION_ID>_<SUBSCRIPTION_ID>
.
Поток с именем NOTIFICATION_EVENTS_STREAM
содержит следующие столбцы:
APPLICATION_ID varchar
SUBSCRIPTION_ID varchar
NOTIFICATION_ID varchar
LOCATION_COUNTRY varchar
Мне нужно соединить NOTIFICATION_EVENTS_STREAM с таблицей SUBSCRIPTIONS, чтобы извлечь столбец LOCATION_COUNTRY
, япробуя следующий запрос, но он, похоже, не работает:
select e.application_id, e.notification_id, s.location_country, count(*) from NOTIFICATION_EVENTS_STREAM_RICH e LEFT JOIN SUBSCRIPTIONS s ON s.KEY = (e.APPLICATION_ID +'_'+ e.SUBSCRIPTION_ID) GROUP BY e.application_id, e.notification_id, s.location_country;
Я получаю следующую ошибку:
Line: 1, Col: 148 : Invalid join criteria (S.KEY = ((E.APPLICATION_ID + '_') + E.SUBSCRIPTION_ID)). Could not find a join criteria operand for E.
Временно я создал следующий поток, чтобы получить составленныйстолбец, но в этом нет необходимости:
CREATE STREAM NOTIFICATION_EVENTS_STREAM_RICH WITH (PARTITIONS=1) AS SELECT APPLICATION_ID, NOTIFICATION_ID, SUBSCRIPTION_ID, KIND, APPLICATION_ID +'_'+NOTIFICATION_ID AS NOTIFICATION_KEY, APPLICATION_ID+'_'+SUBSCRIPTION_ID AS SUBSCRIPTION_KEY FROM NOTIFICATION_EVENTS_STREAM;
Есть ли способ использовать вычисляемые выражения в соединениях таблиц?