oracle SAMPLE与where filter一起工作吗?



我们正在使用ORACLE,需要从表中获得满足特定条件的随机行。我搜索了一下,发现这个样本可能对这个案例有用。然而,据我所知,Sample返回整个表的指定大小的随机子集。因此,在我们的示例中,由于我们需要匹配特定WHERE条件的行,因此查询可能不返回任何行,即使表包含用于该过滤器的行。

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

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

有什么建议纠正这个行为吗?

试试这个:

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

最新更新