繁体   English   中英

类似于 Spark 中的 groupByKey() 但使用 SQL 查询

[英]similar to groupByKey() in Spark but using SQL queries

我试图使

 ID    CATEGORY  VALUE
'AAA'    'X'      123
'AAA'    'Y'      456
'BBB'    'X'      321
'BBB'    'Y'      654

进入

 ID     VALUE_X   VALUE_Y
'AAA'     123       456
'BBB'     321       654

仅使用 SQL 查询。 这有点类似于在 pyspark 中使用 groupByKey()。

有没有办法做到这一点?

只需使用条件聚合。 一种方法是:

select id,
       max(case when category = 'X' then value end) as x_value,
       max(case when category = 'Y' then value end) as y_value
from t
group by id;

在 Postgres 中,这将使用标准filter子句来表达:

select id,
       max(value) filter (where category = 'X'),
       max(value) filter (where category = 'Y')
from t
group by id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM