Sql postgres中是否有与oracle sample子句等效的语句
如果我想要oracle数据库表中的“随机”行样本,我可以查询Sql postgres中是否有与oracle sample子句等效的语句,sql,oracle,postgresql,Sql,Oracle,Postgresql,如果我想要oracle数据库表中的“随机”行样本,我可以查询 select * from mytable sample(1) 并得到1%的回报 Postgres中是否有等效的命令?如果是9.5或更高版本,您可以使用TABLESAMPLE: TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] 根据文件: table_名称后的TABLESAMPLE子句表示指定的 应使用采样_方法检索中的行子集 那张桌子
select * from mytable sample(1)
并得到1%的回报
Postgres中是否有等效的命令?如果是9.5或更高版本,您可以使用
TABLESAMPLE
:
TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ]
根据文件:
table_名称后的TABLESAMPLE子句表示指定的
应使用采样_方法检索中的行子集
那张桌子。此取样先于任何其他方法的应用
筛选器,例如WHERE子句。标准的PostgreSQL发行版
包括两种采样方法,伯努利和系统,以及其他
可以通过扩展在数据库中安装采样方法
伯努利和系统抽样方法都接受一个
参数,它是要采样的表的分数,表示为
百分比介于0和100之间。此参数可以是任何实数
表情。(其他抽样方法可能接受更多或不同的结果。)
这两个方法各自返回一个随机选择的
将包含大约指定百分比的
桌子上的行。伯努利方法扫描整个表并
使用指定的参数独立选择或忽略单个行
可能性该系统方法对每个模块进行块级采样
具有指定被选择机会的块;每行中的所有行
返回选定的块。系统方法明显更快
当采样率较小时,比伯努利方法更有效
指定,但它可能会以
聚类效应的结果
可选的REPEATABLE子句指定种子数或表达式
用于在采样方法中生成随机数。这个
种子值可以是任何非空浮点值。两个问题
指定相同的种子,参数值将选择相同的样本
如果同时未更改该表,则为该表的。但是
不同的种子值通常会产生不同的样本。如果
如果不提供可重复性,则为每个样本选择一个新的随机样本
查询请注意,某些附加采样方法不接受
可重复,每次使用都会产生新的样品
链接:
来自介绍该功能的博客的详细信息: