Присоединение к UDFs в Snowflake - PullRequest
0 голосов
/ 19 апреля 2019

После создания некоторых пользовательских функций работает следующий запрос:

    SELECT
        rsp.id
    FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz)) AS rsp

Однако этот запрос:

    SELECT
        rsp.id
    FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz)) AS rsp
    JOIN TABLE(UDF_2('2019-04-18 12:00:00'::timestamp_ltz)) AS rasp ON 
        rsp.id = rasp.id AND
        rsp.timestamp = rasp.start;

Дает мне:

SQL compilation error: error line 5 at position 8 invalid identifier 'RSP.ID'

Если бы первый запрос не работал, я бы понял. Однако, поскольку первый запрос работает , почему мне говорят, что RSP.ID недействителен?

1 Ответ

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

Мне удалось найти решение:

    SELECT
        rsp.id
    FROM (SELECT * FROM TABLE(UDF_1('2019-04-18 12:00:00'::timestamp_ltz))) AS rsp
    JOIN (SELECT * FROM TABLE(UDF_2('2019-04-18 12:00:00'::timestamp_ltz))) AS rasp ON 
        rsp.id = rasp.id AND
        rsp.timestamp = rasp.start;

работает. Мы предположили, что JOINs происходило до выполнения функции, поэтому «ничего» не было до JOIN вкл.

Я уверен, что это может быть более эффективным, если выбрать только те строки, которые я хочу противопоставить *, но вышесказанное сработало для меня.

...