Sql 使用GROUPBY组合两个查询
假设我有一个带列的表Sql 使用GROUPBY组合两个查询,sql,google-bigquery,Sql,Google Bigquery,假设我有一个带列的表 event_name, event_date, event_key, event_value 我感兴趣的是两个活动名称:用产品回顾meta和点击购买产品回顾meta 对于两个事件名称中的每一个,我需要每个事件日期、事件键、事件值组的合计计数 我目前有两个关于两个事件名称的查询,不知道它们是否可以合并 下面是对BigQuery的查询,但我认为这个想法仍然适用于常规sql select event.date, event.name as event_name, even
event_name,
event_date,
event_key,
event_value
我感兴趣的是两个活动名称:用产品回顾meta和点击购买产品回顾meta
对于两个事件名称中的每一个,我需要每个事件日期、事件键、事件值组的合计计数
我目前有两个关于两个事件名称的查询,不知道它们是否可以合并
下面是对BigQuery的查询,但我认为这个想法仍然适用于常规sql
select event.date, event.name as event_name, event_param.value.string_value as review_meta_name, count(*) as ct from `com_zibann_littlehome_debugEug_ANDROID.app_events_20180403`,
UNNEST(event_dim) as event,
UNNEST(event.params) as event_param
where DATE(TIMESTAMP_MICROS(event.timestamp_micros)) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
and event.name = 'review_meta_with_product'
and event_param.key = "review_meta_name"
group by event.date, event.name, event_param.key, event_param.value.string_value
select event.date, event.name as event_name, event_param.value.string_value as review_meta_name, count(*) as ct from `com_zibann_littlehome_debugEug_ANDROID.app_events_20180403`,
UNNEST(event_dim) as event,
UNNEST(event.params) as event_param
where DATE(TIMESTAMP_MICROS(event.timestamp_micros)) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
and event.name = 'review_meta_click_purchase_product'
and event_param.key = "review_meta_name"
group by event.date, event.name, event_param.key, event_param.value.string_value
是的,可以使用条件聚合将两个查询组合起来:
select event.date, event.name as event_name,
event_param.value.string_value as review_meta_name,
count(case
when event.name = 'review_meta_click_purchase_product'
then 1
end) as ct_purchase,
count(case
when event.name = 'review_meta_with_product'
then 1
end) as ct_product
from `com_zibann_littlehome_debugEug_ANDROID.app_events_20180403`,
UNNEST(event_dim) as event,
UNNEST(event.params) as event_param
where DATE(TIMESTAMP_MICROS(event.timestamp_micros)) >=
DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
and event.name IN ('review_meta_click_purchase_product', 'review_meta_with_product')
and event_param.key = "review_meta_name"
group by event.date,
event.name,
event_param.key,
event_param.value.string_value