正在使用我制作的电影数据库,我想进行一次选择查询,该查询将分别选择收入最高的电影和价值最低的电影,并找出两者之间的时间范围
我尝试使用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
我遇到了汇总错误和语法错误
答案 0 :(得分:0)
这种查询的一般格式为:
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个结果。