array_sample() 是一个系统函数,它从提供的 数组 中随机选择指定数量的项,并返回一个新数组。
array_sample() 在 PostgreSQL 16 中添加。
用法
array_shuffle (arrayanyarray,ninteger) →anyarray
指定的元素数量(n)不得超过所提供数组的元素数量。如果 n 为 0,则返回一个空数组。
返回数组中的项的顺序不保证与所提供数组中的顺序相同。
变更历史
- PostgreSQL 16
- 添加(提交 888f2ea0)
示例
array_sample() 的基本用法示例
postgres=# SELECT array_sample(ARRAY[1,2,3], 2);
array_sample
--------------
{3,2}
(1 row)
postgres=# SELECT array_sample(ARRAY[ ['foo','bar'], ['zoo','zog'], ['bim','bam'] ], 2);
array_sample
-----------------------
{{foo,bar}, {zoo,zog}}
(1 row)
尝试提供无效的样本大小
postgres=# SELECT array_sample(ARRAY[1,2,3], -1); ERROR: sample size must be between 0 and 3
参考资料
- PostgreSQL documentation: 数组函数
