如何在Presto/AWS Athena中将GROUP BY多行结果转为单行
在Presto/AWS Athena中实现行转列(多行转单行)
可以通过条件聚合直接实现需求,将分组统计的多行结果转换为单行多列格式:
SELECT SUM(CASE WHEN result = 'skipped' THEN 1 ELSE 0 END) AS skipped, SUM(CASE WHEN result = 'passed' THEN 1 ELSE 0 END) AS passed, SUM(CASE WHEN result = 'failed' THEN 1 ELSE 0 END) AS failed FROM table;
逻辑说明
- 用
CASE WHEN判断每条记录的result值,匹配目标值时返回1,否则返回0 - 通过
SUM累加对应结果的数量,直接得到各状态的统计值并作为单独列输出 - 若还有其他
result取值,只需按相同格式添加SUM(CASE...)语句即可
输出结果
执行后会直接返回你需要的单行结构:
skipped | passed | failed 12 | 13 | 2
内容的提问来源于stack exchange,提问作者mphuie
相关产品推荐
相关产品推荐

