Мне было интересно, если кто-нибудь знает, как найти минимальное значение и максимальное значение и найти временной интервал между ними? - PullRequest
0 голосов
/ 08 мая 2019

я работаю с базой данных фильмов, которую я сделал, и я хотел сделать запрос на выборку, который бы отдельно выбирал фильм с самым высоким доходом и фильм с самым низким значением и находил временные рамки между ними

Я попытался использовать функции min и max, чтобы попытаться отдельно выбрать самый низкий и самый высокий фильмы, и попытался использовать datediff (), чтобы попытаться установить временной интервал между ними. мой код ниже

SELECT  titles.title, min(financial_info.revenue),max(financial_info.revenue),
DATEDIFF(year, date(min(financial_info.revenue), date(max(financial.revenue)))

production_company.release_date  
from titles 
left join financial_info on titles.id = financial_info.id  
left join production_company on 
titles.imdb_id = production_company.imdb_id

У меня была ошибка агрегации и синтаксическая ошибка

1 Ответ

0 голосов
/ 09 мая 2019

Общий формат для этого вида запроса будет выглядеть следующим образом:

SELECT stuff
   , maxB.Y - minB.Y -- Or, in this case DATEDIFF instead of minus
FROM (SELECT MIN(x) AS minX, MAX(x) AS maxX FROM a) AS minMax
INNER JOIN a AS minA ON minMax.minX = minA.X
INNER JOIN a AS maxA ON minMax.maxX = maxA.X
INNER JOIN b AS minB ON minA.b_id = minB.b_id
INNER JOIN b AS maxB ON maxA.b_id = maxB.b_id
;

Вы можете получить более одного результата, если есть несколько записей с одинаковой суммой дохода.(2 при минимальной выручке и 3 при максимальной выручке дадут 6 результатов).

...