#sql #google-bigquery
#sql #google-bigquery
Вопрос:
Я не могу ссылаться на псевдонимы Gross_Demand и Units.
,(CASE WHEN CONCAT(',',post_event_list,',') LIKE '%,1,%' THEN SPLIT(item, ";")[safe_offset(3)] END) Gross_Demand
,(CASE WHEN CONCAT(',',post_event_list,',') LIKE '%,1,%' THEN SPLIT(item, ";")[safe_offset(2)] END) Units
Комментарии:
1. Привет, Виван, добро пожаловать в Stack Overflow. Мы — сообщество помощи, но мы не можем выполнить работу за вас. Пожалуйста, сформулируйте ваш вопрос как можно более обобщенно, чтобы другим людям с такой же проблемой было легко понять как вопрос, так и найти ответ для своей ситуации. В частности, спросите себя, как вы можете свести инструкцию SQL к сути рассматриваемой проблемы.
Ответ №1:
Намеренно не даю вам конкретного ответа, но я бы структурировал ваш запрос следующим образом:
-- Declare your variables
DECLARE StartDate...
with hits as (
-- select what you need from your hits table, filter and unnest here
),
products as (
-- select and filter what you need from your products table here
),
joined as (
-- join the two sources together and do any additional filtering
select
date, visits, orders, gross_demand, units, etc...
from hits
join products
),
calcs as (
select
*,
gross_demand*units as revenue,
orders/visits * 100 as conversion_pct,
gross_demand*units/visits as revenue_per_visit
from joined
)
select * from calcs
Разбиение вашей логики на шаги / фрагменты часто упрощает задачу.
Комментарии:
1. Моя проблема с текущей формулой заключается в том, что я не могу ссылаться на строки ниже, поскольку там есть псевдонимы. Валовой спрос и единицы измерения. ,(СЛУЧАЙ, КОГДА CONCAT(‘,’,post_event_list,’,’) КАК ‘%,1,%’ ЗАТЕМ SPLIT (item, «;»)[safe_offset(3)] END) Gross_Demand , (СЛУЧАЙ, КОГДА CONCAT(‘,’,post_event_list,’,’) КАК ‘%,1,%’ ЗАТЕМ SPLIT(item, «;»)[safe_offset(2)] END) Единицы измерения
2. Продолжайте добавлять CTE, если вам нужно. Вы всегда можете ссылаться на все, что определено выше.