0

我们使用 ORACLE,需要从表中获取随机行,满足特定条件。我搜索并发现该示例在这种情况下可能有用。但是,据我了解, Sample 返回整个表指定大小的随机子集。所以在我们的例子中,因为我们需要匹配特定 WHERE 条件的行,所以查询可能不会返回任何行,即使表包含该过滤器的行。

SELECT column FROM (SELECT column FROM table SAMPLE(10) WHERE COLUMN='abc') WHERE rownum = 1

在上面的查询中,如果 10% 的样本集不包含任何列 'abc' 的行,它将返回空结果(即使 90% 可能包含这样的行)

有什么建议可以纠正这种行为吗?

4

1 回答 1

2

尝试这个:

WITH data AS (SELECT column FROM table WHERE COLUMN='abc')
SELECT column FROM data SAMPLE(10) 
WHERE rownum = 1
于 2013-04-23T16:05:12.333 回答