Использование CONCAT для имени таблицы базы данных - PullRequest
0 голосов
/ 29 января 2020

Я хочу concat имя таблицы с датой lastDay в виде строки и получить такой результат:

dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_20200128

Я нашел эту строку, чтобы получить мне вчерашний день

REPLACE(CAST(DATE_SUB(DATE_TRUNC(CURRENT_DATE(), DAY), INTERVAL 1 DAY) as STRING), "-","") Я произнес это в виде строки

Но теперь я должен объединить все, и это не работает ...

date,
transaction.transactionId, 
ref.productSKU as productRef, 
associated.productSKU as productAssociated, 
ARRAY_LENGTH(hits.product) as nbProducts

FROM CONCAT("`dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_",
REPLACE(CAST(DATE_SUB(DATE_TRUNC(CURRENT_DATE(), DAY), INTERVAL 1 DAY) as STRING), "-",""),
"`") as session,

UNNEST(hits) AS hits,
UNNEST(hits.product) as ref,
UNNEST(hits.product) as associated

AND hits.transaction.transactionId IS NOT NULL
AND ARRAY_LENGTH(hits.product) > 2```

1 Ответ

2 голосов
/ 29 января 2020

Почему бы вам не использовать _TABLE_SUFFIX?

Я упростил запрос, удалив ненужные столбцы здесь:

SELECT *
FROM `dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_*` as session,
WHERE 
_TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...