我们使用ORACLE并且需要从表中获取随机行,以满足特定条件。我搜索并发现样本在这种情况下可能很有用。 但是,据我所知,Sample返回整个表的指定大小的随机子集。 因此,在我们的示例中,由于我们需要与特定WHERE条件匹配的行,因此查询可能不会返回任何行,即使该表包含该过滤器的行也是如此。
SELECT列FROM (SELECT列FROM表SAMPLE(10)WHERE COLUMN ='abc') 在哪里rownum = 1
在上面的查询中,如果10%样本集不包含任何带有'abc'列的行,它将返回空结果(即使90%可能包含这样的行)
有任何纠正此行为的建议吗?
答案 0 :(得分:2)
试试这个:
WITH data AS (SELECT column FROM table WHERE COLUMN='abc')
SELECT column FROM data SAMPLE(10)
WHERE rownum = 1