gpt4 book ai didi

sql - 如何在过滤查询上使用 TABLESAMPLE?

转载 作者:行者123 更新时间:2023-12-03 21:01:38 31 4
gpt4 key购买 nike

我正在尝试从具有指定过滤器的表中查询随机行。我正在使用 TABLESAMPLE BERNOULLI(n)获取 n行的百分比。

我能够过滤结果,但问题是如果随机样本不包含所需的数据(当数据很少时可能会发生),我在结果中没有数据。

这是我正在运行的:

SELECT id from table TABLESAMPLE BERNOULLI(10) WHERE age < 20 LIMIT 30;

我希望能够首先过滤表格,然后获得随机样本。我希望查询看起来像这样:
SELECT id from table WHERE age < 20 TABLESAMPLE BERNOULLI(10) LIMIT 30;

但这不是有效的语法。

我的问题是:有没有办法在过滤数据后使用 TABLESAMPLE BERNOULLI?

最佳答案

内森是对的。栏目TABLESAMPLE Clause Restrictions在 postgres 文档中指出:

The TABLESAMPLE clause is currently accepted only on regular tables and materialized views. According to the SQL standard it should be possible to apply it to any FROM item.


你可以这样写你的查询:
create temp table tbl_filtered as select id from table where age < 20;
select id from tbl_filtered tablesample bernoulli(10) limit 30;

关于sql - 如何在过滤查询上使用 TABLESAMPLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56959449/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com