SQL - junção esquerda desigual ao BigQuery
Novo aqui. Estou tentando obter os usuários ativos diariamente e semanalmente ao longo do tempo. eles têm 30 dias antes de serem considerados inativos. Meu objetivo é criar gráficos que possam ser divididos por user_id para mostrar coortes, regiões, categorias etc.
Criei uma tabela de datas para obter todos os dias do período e tenho a tabela de pedidos simplificados com as informações básicas necessárias para calcular isso.
Estou tentando fazer uma associação esquerda para obter o status por data usando a seguinte consulta SQL:
WITH daily_use AS (
SELECT
__key__.id AS user_id
, DATE_TRUNC(date(placeOrderDate), day) AS activity_date
FROM `analysis.Order`
where isBuyingGroupOrder = TRUE
AND testOrder = FALSE
GROUP BY 1, 2
),
dates AS (
SELECT DATE_ADD(DATE "2016-01-01", INTERVAL d.d DAY) AS date
FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY __key__.id) -1 AS d
FROM `analysis.Order`
ORDER BY __key__.id
LIMIT 1096
) AS d
ORDER BY 1 DESC
)
SELECT
daily_use.user_id
, wd.date AS date
, MIN(DATE_DIFF(wd.date, daily_use.activity_date, DAY)) AS days_since_last_action
FROM dates AS wd
LEFT JOIN daily_use
ON wd.date >= daily_use.activity_date
AND wd.date < DATE_ADD(daily_use.activity_date, INTERVAL 30 DAY)
GROUP BY 1,2
Estou recebendo este erro: LEFT OUTER JOIN não pode ser usado sem uma condição de igualdade de campos de ambos os lados da junção. No BigQuery e queria saber como posso resolver isso. Estou usando o SQL padrão no BigQuery.
Obrigado