Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 显示最昂贵影片的成本在2美元以内的查询_Sql_Oracle_Max_Aggregate Functions_Oracle9i - Fatal编程技术网

Sql 显示最昂贵影片的成本在2美元以内的查询

Sql 显示最昂贵影片的成本在2美元以内的查询,sql,oracle,max,aggregate-functions,oracle9i,Sql,Oracle,Max,Aggregate Functions,Oracle9i,那些是我的专栏 我正在使用oracle 9i 感谢所有能帮忙的人。所以只要用这些信息来过滤所有的电影就行了 TITLE GEN DURATION PRODUCTION_YEAR MED PURCHASE_PRICE PURCHASE_ MOVIE_ID 此查询将聚合查询放入它在FROM子句中引用的子查询分解子句中。我们使用交叉联接,因为我们知道子查询只返回一行,所以不需要任何联接条件。WHERE子句根据价格进行过滤 您说您正在使用Oracle 9i。为什么会有这么旧的版本?它

那些是我的专栏

我正在使用oracle 9i

感谢所有能帮忙的人。所以只要用这些信息来过滤所有的电影就行了

TITLE   GEN DURATION    PRODUCTION_YEAR MED PURCHASE_PRICE  PURCHASE_   MOVIE_ID
此查询将聚合查询放入它在FROM子句中引用的子查询分解子句中。我们使用交叉联接,因为我们知道子查询只返回一行,所以不需要任何联接条件。WHERE子句根据价格进行过滤



您说您正在使用Oracle 9i。为什么会有这么旧的版本?它已经失去了十年的扩展支持!无论如何,这就是引入WITH子句(以及ANSI-92 join语法)的版本。它在文档中

您可以使用Oracle 9i中提供的分析函数执行此操作:

with exmv as 
  (select max(purchase_price) as mx_price 
   from movie)
select movie.*
from       movie 
cross join exmv
where movie.purchase_price >= exmv.mx_price - 2
;

您可以在
WHERE
子句的子查询中使用
MAX
函数,如下所示:

select *
from (
    select m.*, max(purchase_price) over() as max_purchase_price
    from movie m
) m
where purchase_price >= max_purchase_price - 2

您可以使用窗口功能:

SELECT * FROM MOVIE
 WHERE PURCHASE_PRICE >= (SELECT MAX(PURCHASE_PRICE) - 2 FROM MOVIE)

请添加示例数据、预期结果和一些逻辑来创建查询以及您尝试的内容。
select t.*
from (select t.*, max(PURCHASE_PRICE) over () as max_price
      from t
     ) t
where PURCHASE_PRICE >= max_price - 2;