Немного сложнее, чем просто получить топ # в категории. Мне нужны 2 лучших видео на исполнителя, в день на страну.
Мой код, который не дал мне правильных результатов:
Select *
From
(
Select t2.*, dense_rank() over(partition by artist order by views desc)
From
(select country, day, artist, song, sum(view) as views
From t1
Group by 1,2,3,4
) t2
)
Where rn >=5
Пример результатов данных
| Country | Date | artist | video | views | rn |
|---------|------|----------|-------|-------|----|
| US | Jan1 | Beyonce | ab | 100 | 1 |
| US | Jan1 | Beyonce | ac | 99 | 2 |
| US | Jan2 | C. Brown | ad | 89 | 1 |
| US | Jan2 | C. Brown | ai | 103 | 2 |
| AU | Jan1 | Beyonce | bf | 99 | 1 |
| AU | Jan1 | Beyonce | bb | 89 | 2 |
Я хочу, чтобы все художники в день, в каждой стране, но только 10 видео на исполнителя ... Я немного растерялся, как этого добиться ... Я вообще изо всех сил, когда дело доходит до оконных функций, поэтому я был бы признателен за любую помощь .
Я использую Amazon Redshift
Спасибо