Я не могу правильно оформить заголовок вопроса. Предположим, что таблица еженедельных доходов от фильмов приведена ниже:
MovieName <Varchar(450)>
MovieGross <Decimal(18)>
WeekofYear <Integer>
Year <Integer>
Так, как я могу получить имена лучших grossers для каждой недели этого года, если я делаю:
select MovieName , Max(MovieGross) , WeekofYear
from earnings where year = 2010 group by WeekofYear;
Тогда, очевидно, запрос не запустится, а
select Max(MovieName) , Max(MovieGross) , WeekofYear
from earnings where year = 2010 group by WeekofYear;
просто даст фильмы, начиная с самого низкого алфавита. Является ли использование group_concat()
, а затем substring_index()
единственным вариантом здесь?
select
substring_index(group_concat(MovieName order by MovieGross desc),',',1),
Max(MovieGross) , WeekofYear from earnings where year = 2010
group by WeekofYear ;
Кажется неуклюжим. Есть ли лучший способ добиться этого?