0
选择姓氏、州、计数(*)
从测试
所在州('NY'、'NJ'、'CA')
按州、姓氏分组
计数(*)>1;

MS SQL server 和 Sybase 中的类似查询用于内部处理如下,

在测试表上应用 where 子句并制作结果集(内部表),然后应用 group by 并制作另一个内部结果集,最后应用 Have 并将最终结果集显示给用户。

Oracle 是否也使用结果集方法,还是有所不同?

顺便说一句,我试着用谷歌搜索,检查了 Oracle 文档,找不到我正在寻找的细节。Sybase 文档对这些事情非常清楚。

4

1 回答 1

1

在这种情况下,您可以指望 Oracle 实现结果集。可以肯定的是,检查计划。我打赌你会在顶部找到一个哈希组,然后是一个过滤操作。

您的案例可能存在一些罕见的变化,可以通过遍历合适的索引来解决,以避免中间结果集,但我从未在执行计划中遇到过它。

于 2013-04-07T13:18:24.660 回答