Вот схема:Попадая кортежи SQL, которые содержат наибольшее значение совокупного атрибута после группировки
ACTOR (id, name)
PLAY (id, name, year)
CASTS (pid, aid, character)
Возникает вопрос: Найти пьесы с наибольшим броском (актеры различных) и вернуть названия и литой размер этих пьес.
Это запрос SQL, что я до сих пор:
select mm.id, mm.name, count(distinct a.id) as numOfActors
from actor a
join casts c on c.pid = a.id
join play mm on mm.id = c.aid
group by mm.id, mm.name;
Каждый кортеж вернулся из этого запроса содержит различные игры, показывая его идентификатор, имя и количество отливок имеет. Но оттуда я с трудом пытаюсь подгонять его как подзапрос в внешнем запросе, который позволит мне извлекать только кортежи с наибольшим значением numofActors (так что, если наибольшее значение равно 100, то единственные кортежи, которые будут возвращены все 100 участников).
Да, это один из тех проблем, связанных с «домашним заданием», но я также ищу концептуальное понимание (по существу, извлечение кортежей, содержащих наибольшее значение определенного агрегированного атрибута после группировки). Сортировка по убыванию и выбор верхнего кортежа не работает, так как может быть более одного кортежа с наибольшим значением.
Какую базу данных вы используете? –
Я использую SQL Server – ShadowCrossZero