如何在 Presto 中不聚合的情况下进行 PIVOT

How to PIVOT without aggregation in Presto

我有一个 table 这样的:

并希望在没有聚合的情况下进行数据透视以获得如下所示的结果:

这在 standard [T]SQL 中很简单,但我需要在没有 PIVOT 功能的 Presto 中执行此操作。如何使用 Presto 函数做到这一点?

您可以使用 join:

select t_us.display_name, t_us.site_count as us_cnt, t_for.site_count as for_cnt
from t t_us join
     t t_for
     on t_us.display_name = t_for.display_name and
        t_us.locationtype = 'US' and
        t_for.locationtype = 'FOR';

我会为此推荐条件聚合,但您特别要求另一种解决方案。

顺便说一下,PIVOTbespoke 语法。这不是标准的。该方案和条件聚合都是SQL标准方案。