Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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 显示总体维护成本最高的驾驶室_Sql_Oracle_Top N - Fatal编程技术网

Sql 显示总体维护成本最高的驾驶室

Sql 显示总体维护成本最高的驾驶室,sql,oracle,top-n,Sql,Oracle,Top N,我不知道怎样才能使总数达到最大值。我想我可以按降序显示它,然后使用“rownum=1”,但这不起作用。有什么建议吗?这是我的密码 select ca_make, sum(ma_cost) from cab join maintain on ca_cabnum = ma_cabnum Where rownum =1 group by ca_make order by sum(ma_cost) desc ROWNUM()在ORDER BY之前应用。您需要使用子查询: select * from

我不知道怎样才能使总数达到最大值。我想我可以按降序显示它,然后使用“rownum=1”,但这不起作用。有什么建议吗?这是我的密码

select ca_make,  sum(ma_cost)
from cab join maintain on ca_cabnum = ma_cabnum 
Where rownum =1
group by ca_make
order by sum(ma_cost) desc
ROWNUM()在ORDER BY之前应用。您需要使用子查询:

select * from (
    select ca_make,  sum(ma_cost)
    from cab join maintain on ca_cabnum = ma_cabnum 
    group by ca_make
    order by sum(ma_cost) desc
    )
where rownum = 1


在Oracle中实现[top-n]查询有几种不同的方法

首先,您可能想使用
左连接
。通过使用
JOIN
,您排除了所有没有任何维护的驾驶室。(显然,这对于查找最高成本并不重要,但在查找最低成本时会有所不同;这将严重扭曲您试图从该查询编译的任何统计数据)

现在,回答你的问题。。。试试这个:

select * from
  (select ca_make,  sum(ma_cost)
  from cab 
    left join maintain on ca_cabnum = ma_cabnum 
  group by ca_make
  order by sum(ma_cost) desc)
where rownum = 1
这是对
ROWNUM
的一个很好的解释。您的案例得到了明确的处理,只占页面的一半(但如果您打算使用该功能,那么整个页面可能值得一读)