столбец не существует ИЛИ схема не существует ошибка в AWS Redshift - PullRequest
0 голосов
/ 05 апреля 2019

Рабочий запрос необходимо изменить, чтобы включить столбец из другой таблицы.При присоединении влево я получаю сообщение об ошибке «столбец не существует».При использовании столбца вместо псевдонима столбца в операторе ON первая ошибка превращается в ошибку «схемы не существует».

Это приводит к тому, что 'столбец "a.audience_id" не существует, ошибка "

        select
            criteria,
            trim(split_part(criteria, ':', 3))  as audience_id,
            t.category as audience_name,
            row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
        from
            client.adwords_insights_audience a
            left join core.googleads_inmarketaudience_xref x
            on a.audience_id = x.criterion_id
        group by
        criteria,
           trim(split_part(criteria, ':', 3)),
            t.category

. И изменение в предложении ON к приведенному ниже приводит к тому, что" схема "a" не существует'error

        select
            criteria,
            trim(split_part(criteria, ':', 3))  as audience_id,
            t.category as audience_name,
            row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
        from
            client.adwords_insights_audience a
            left join core.googleads_inmarketaudience_xref x
            on a.trim(split_part(criteria, ':', 3)) = x.criterion_id
        group by
        criteria,
           trim(split_part(criteria, ':', 3)),
            t.category

Исходный запрос (ниже) работает отлично.Только когда я оставляю присоединение, возникают ошибки.

        select
            criteria,
            trim(split_part(criteria, ':', 3))  as audience_id,
            row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
        from
            client.adwords_insights_audience a
        group by
        criteria,
           trim(split_part(criteria, ':', 3))

Столбец 'date' также в порядке, я удалил его из этого поста вместе с несколькими другими для ясности.Я надеюсь на столбец t.category в конечном выводе.

1 Ответ

0 голосов
/ 05 апреля 2019

Я подозреваю, что если вы исправите псевдонимы таблицы, ваш запрос может работать. Вот мое лучшее предположение о происхождении столбцов:

select x.criteria,
       trim(split_part(x.criteria, ':', 3))  as audience_id,
       a.category as audience_name,
       row_number() over (partition by trim(split_part(x.criteria, ':', 3)) order by  ?.date desc) as rownumber
from client.adwords_insights_audience a left join 
     core.googleads_inmarketaudience_xref x
     on a.audience_id = x.criterion_id
group by x.criteria,
         trim(split_part(x.criteria, ':', 3)),
         a.category;

* * * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
...