Псевдонимы таблиц в подзапросах - PullRequest
0 голосов
/ 28 октября 2019

(Отправка здесь, чтобы помочь другим пользователям «Снежинки», которые могут столкнуться с подобными проблемами ... Интересно узнать, есть ли какие-либо дополнительные рекомендации помимо того, что уже было предоставлено.)

Почему нетпсевдоним таблицы работает в подзапросах?

Я использовал запрос выборки таблицы, но он не работает, когда я закодировал псевдоним таблицы.

select * from SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.STORE as t
where 
t.S_REC_START_DATE = (
          select max(i.S_REC_START_DATE) from t as i
              where i.S_REC_START_DATE < '2000-01-01'
        )

Я получил ошибку компиляции SQL: Object 'T' does not exist.

невозможно использовать псевдоним таблицы?

1 Ответ

1 голос
/ 28 октября 2019

(Ранее предоставлено Майком Уолтоном, постоянным членом команды профессиональных услуг Snowflake)

Можно, но не так. Вместо этого вы должны использовать CTE:

WITH t as (
  select * from SNOWFLAKE_SAMPLE_DATA.TPCDS_SF100TCL.STORE
)
select * FROM t
where t.S_REC_START_DATE = (
         select max(S_REC_START_DATE) as S_REC_START_DATE from t
              where S_REC_START_DATE < '2000-01-01'
        )

Любые другие идеи и / или рекомендации?

...