让我说我有一个叫做订单的表格,其中包含以下数据。我需要获得customer_name以及编号。他们下的订单。
表名:订单
id | customer_name | item
1 | Siddhant | TV
2 | Siddhant | Mobile
3 | Sankalp | Football
所需的输出:
customer_name | no_of_orders
Siddhant | 2
Sankalp | 1
我尝试了以下2个查询来获取结果:
select customer_name,count(customer_name) as no_of_orders
from order
group by customer_name;
这给了我正确的结果,但是大约需要10.5秒才能运行
select ord.customer_name,count(ord1.customer_name) as no_of_orders
from order ord
inner join order ord1 on ord1.customer_name = ord.customer_name
group by ord.customer_name;
这使我得到结果的平方(正确计数),但运行约2秒。我可以求平方根来获取实际计数。
我理解为什么第二个查询在输出中给出实际计数的平方,但是有人可以解释为什么它比第一个查询运行得这么快吗?
PS:我正在Oracle SQL Developer中运行它们。