我有以下hive sql查询
我想使用相同的查询来获取
理想情况下,我希望在一个查询中完成。这可能吗
SELECT
'global_authenticated' AS experiment_type,
--experiment data
experiment_name,
variant_name,
MIN(first_date) AS min_date,
COUNT(DISTINCT visid)
FROM dwo_analysis.spark_global_authenticated_experiment_dashboard_report_activity c
GROUP BY experiment_name, variant_name;
答案 0 :(得分:0)
您只需要从表中读取三次,将每组读取数据标记为“last_week”,“last_month”和“last_3_months”,然后将UNION ALL
标记为三个数据集。参见:
SELECT *
FROM (
SELECT 'global_authenticated' AS experiment_type
,
--experiment data
experiment_name
,variant_name
,MIN(first_date) AS min_date
,COUNT(DISTINCT visid)
,"last week" AS date_extract
FROM dwo_analysis.spark_global_authenticated_experiment_dashboard_report_activity c
WHERE DATE < "the last week"
GROUP BY experiment_name
,variant_name
UNION ALL
SELECT 'global_authenticated' AS experiment_type
,
--experiment data
experiment_name
,variant_name
,MIN(first_date) AS min_date
,COUNT(DISTINCT visid)
,"last month" AS date_extract
FROM dwo_analysis.spark_global_authenticated_experiment_dashboard_report_activity c
WHERE DATE < "the last month"
GROUP BY experiment_name
,variant_name
) first_union
UNION ALL
SELECT 'global_authenticated' AS experiment_type
,
--experiment data
experiment_name
,variant_name
,MIN(first_date) AS min_date
,COUNT(DISTINCT visid)
,"last 3 months" AS date_extract
FROM dwo_analysis.spark_global_authenticated_experiment_dashboard_report_activity c
WHERE DATE < "the last 3 months"
GROUP BY experiment_name
,variant_name