【发布时间】:2012-10-17 21:49:15
【问题描述】:
我可以通过两种方式使用聚合函数编写查询:
select team, count(min) as min_count
from table
group by team
having count(min) > 500
或
select *
from (
select team, count(min) as min_count
from table
group by team
) as A
where A.min_count > 500
这两种方法是否有任何性能优势,或者它们在功能上是否相同?
【问题讨论】:
-
最重要的是:它们在语义上是否相同?
-
您是否对它们进行了测试或查看了解释计划?
-
可以显示查询执行计划吗?
-
这是一个需要从一般原则上回答的问题。测量单个案例不是这里所要求的。它不能证明其他情况。
-
您似乎遗漏了一些性能问题所需的关键信息。您要问什么具体的 DBMS?因为它归结为查看该 DBMS 中的实现。