amazon-redshift - Redshift 中的 ROW_NUMBER() 从每组中选择最大的行?

标签 amazon-redshift

我需要根据 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/

相关文章:

sql - 日期之间的 Redshift 查询

python - 如何在 python 中从 redshift 更快地处理数据?

sql - 如何对有序行进行分组?

amazon-web-services - RedShift 节点故障转移

sql - 列表聚合的 group by 问题

sql - 如何计算嵌入字符串中的不同时间戳?

amazon-web-services - 将数据从 Amazon S3 复制到 Redshift 并避免重复行

bash - 如何将 Redshift SELECT 属性保存到脚本变量中

python - Redshift 创建表无法通过 Python 工作

amazon-web-services - 如何列出 AWS RedShift 中的所有存储过程