Sql 显示总体维护成本最高的驾驶室
我不知道怎样才能使总数达到最大值。我想我可以按降序显示它,然后使用“rownum=1”,但这不起作用。有什么建议吗?这是我的密码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
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
的一个很好的解释。您的案例得到了明确的处理,只占页面的一半(但如果您打算使用该功能,那么整个页面可能值得一读)