小编Tho*_*ott的帖子

如何根据另一列的聚合获得一列对应的值?

我正在将一些 PostgreSQL 查询迁移到 Snowflake,并且正在努力复制以下查询:

WITH test_table(col1, col2, col3, col4) AS (
    VALUES 
        (1, 1, 7, 5),
        (1, 1, 6, 4),
        (1, 2, 1, 4),
        (1, 2, 2, 5),
        (1, 2, 3, 6)
)

SELECT
    col1,
    col2,
    (max(ARRAY[col3, col4]))[2]
FROM test_table
GROUP BY 1, 2
Run Code Online (Sandbox Code Playgroud)

col4此查询设法获取与 的最大值相对应的值col3 grouped by col1, col2。然而,我没有找到任何优雅的解决方案来在 Snowflake 上复制这一点。

sql greatest-n-per-group maxby snowflake-cloud-data-platform

6
推荐指数
1
解决办法
1610
查看次数