我需要根据 COUNT(1)
字段从每个组中选择一行。
在其他数据库中,我会使用 ROW_NUMBER() 函数,在 redshift 中它是 unsupported yet .
最佳答案
答案是使用 SUM(1) OVER(PARTITION BY group_field ORDER BY order field ROWS UNBOUNDED PRECEDING)
结构如下:
SELECT id,
name,
cnt
FROM
(SELECT id,
name,
count(*) cnt,
sum(1) over (partition BY id ORDER BY cnt DESC ROWS UNBOUNDED PRECEDING) AS row_number
FROM table
GROUP BY id,
name)
WHERE row_number = 1
ORDER BY name
关于amazon-redshift - Redshift 中的 ROW_NUMBER() 从每组中选择最大的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974467/