【问题标题】:ROW_NUMBER() in Redshift to select biggest row from each group?Redshift中的ROW_NUMBER()从每个组中选择最大的行?
【发布时间】:2013-11-14 09:53:48
【问题描述】:

我需要根据COUNT(1) 字段从每个组中选择一行。

在其他数据库中,我会使用 ROW_NUMBER() 函数,在 redshift 中是 unsupported yet

【问题讨论】:

标签: amazon-redshift


【解决方案1】:

答案是使用这样的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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2021-07-30
    • 2017-03-17
    • 2021-10-11
    • 1970-01-01
    • 2014-05-12
    • 2013-06-24
    相关资源
    最近更新 更多