Unknown identifier при использование left join

Возникает ошибка при запросе с Clickhouse

Code: 47, e.displayText() = DB::Exception: Unknown identifier: cohort_month there are columns: user_id, event_date, 'month', date_trunc('month', event_date), toDate(date_trunc('month', event_date)): While processing user_id, dateDiff('month', toDate(date_trunc('month', event_date)), cohort_month) (version 21.3.7.62 (official build))

select 
       A.device_id,
       dateDiff('month', toDate(date_trunc('month', A.event_date)), C.cohort_month)
from logs.track A
         left join ( select toDate(date_trunc('month', U.event_date)) as cohort_month,
                            device_id
                     from logs.track U
                     order by 1, 2) C
        ON A.device_id = C.device_id
group by A.device_id, A.event_date;

Подзапрос отдельно выполняется, ни как не пойму почему не видит cohort_month

select toDate(date_trunc('month', U.event_date)) as cohort_month,
       device_id
from logs.track U
order by 1, 2

Ответы (1 шт):

Автор решения: Сергей74rus

Достаточно было в group by делать группировку не по A.event_date, а по dateDiff('month', toDate(date_trunc('month', A.event_date)), C.cohort_month) ну или доавить alias к dateDiff('month', toDate(date_trunc('month', A.event_date)), C.cohort_month) month_number и его указывать в group by

→ Ссылка