1 ответ

  1. Хммм. Вы, кажется, хотите не более четырех записей из каждой группы, упорядоченных по ранжированию:

    select t.*
    from (select t.*,
                 row_number() over (partition by name order by ranking desc) as seqnum
          from t
         ) t
    where seqnum <= 4
    order by name, ranking desc;
    

    Ой, я только что вспомнила. Amazon Redshift не поддерживает row_number()(или это исправлено?). Кумулятивный счетчик работает:

    select t.*
    from (select t.*,
                 count(*) over (partition by name order by ranking desc range between unbounded preceding and current row) as seqnum
          from t
         ) t
    where seqnum <= 4
    order by name, ranking desc;