问题描述
user_detail 表中的 user_id 与 RIDE 表中的ride_provider_id 相同。
我试过了,但在最后一行收到错误“ORA-00920:无效的关系运算符”;
select u.*
from user_details u,(select ride_provider_id,count(ride_provider_id) as of_ride
from ride
group by ride_provider_id) r2
where u.user_id= r2.ride_provider_id
having max(r2.of_ride);
解决方法
在 Oracle 中,您可以使用 order by
和 fetch first
子句来表达:
select u.*
from user_details u join
(select ride_provider_id,count(*) as of_ride
from ride
group by ride_provider_id
) r
on u.user_id = r.ride_provider_id
order by of_ride desc
fetch first 1 row only;
然而,这似乎相当低效。如果您使用子查询进行计数,则该查询可以在子查询中进行限制:
select u.*
from user_details u join
(select ride_provider_id,count(*) as of_ride
from ride
group by ride_provider_id
order by count(*) desc
fetch first 1 row only
) r
on u.user_id = r.ride_provider_id