如何在Athena(Presto)中合并两条SQL查询语句?
合并Athena(Presto)两条SQL查询的方案
可以将两条查询合并,核心思路是先计算出每个target_port_list对应的diff值,再将其与第二条带条件的统计查询通过target_port_list关联,从而在每条统计结果旁展示对应的diff。
以下是合并后的SQL示例(使用CTE语法,可读性更强):
WITH port_time_diff AS ( SELECT target_port_list, max(CAST(From_iso8601_timestamp(time) AS timestamp)) - min(CAST(From_iso8601_timestamp(time) AS timestamp)) AS "diff" FROM alb_logs GROUP BY target_port_list ) SELECT stats.target_port_list, stats.elb_status_code, stats.cnt, port_time_diff.diff FROM ( SELECT target_port_list, elb_status_code, count(*) AS cnt FROM alb_logs WHERE request_url = 'https://register.yahoo.in:443/ABC/Registration/Account/Login' GROUP BY target_port_list, elb_status_code ) stats JOIN port_time_diff ON stats.target_port_list = port_time_diff.target_port_list;
如果需要保留第一条查询中的min_date和max_date,只需在CTE的SELECT语句中添加这两个字段,再在最终的SELECT中选取即可。
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

