我正在使用我制作的电影数据库,我想进行一个选择查询,分别选择收入最高的电影和值(value)最低的电影,并找到它们之间的时间范围
我尝试使用 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
我有聚合错误和语法错误
最佳答案
此类查询的一般格式为:
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 个结果)。
关于mysql - 我想知道是否有人知道如何找到最小值和最大值并找到它们之间的时间范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56048681/