PostgreSQL 16新特性之数组抽样和随机排序

这篇具有很好参考价值的文章主要介绍了PostgreSQL 16新特性之数组抽样和随机排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PostgreSQL 支持内置的数组类型,包括多维数组。不仅如此,PostgreSQL 还提供了许多操作和处理数组类型的函数。

PostgreSQL 16 又增加了 2 个新的数组函数:

  • array_sample(),返回随机抽取的 N 个数组元素;
  • array_shuffle(),将数组中的元素随机排序。

接下来我们看几个示例。

数组随机抽样

以下示例每次返回 1 到 10 之间的一个随机数字:

SELECT array_sample(ARRAY[1,2,3,4,5,6,7,8,9,10], 1);

array_sample|
------------+
{2}         |

array_sample() 函数包含两个参数,第一个参数是一个数组,第二个参数是抽样结果的个数。该函数的返回类型仍然是数组。

以下示例每次返回 3 个随机数字:

SELECT array_sample(ARRAY[1,2,3,4,5,6,7,8,9,10], 3);

array_sample|
------------+
{9,1,3}     |

对于多维数组,抽样操作基于第一个维度返回元素。例如:

SELECT array_sample(ARRAY[[1,2],[3,4],[5,6],[7,8],[9,10]], 3);
array_sample        |
--------------------+
{{3,4},{1,2},{9,10}}|

array_sample() 函数的第二个参数不能大于数组的第一个维度的长度,否则将会返回错误。例如:

SELECT array_sample(ARRAY[[1,2],[3,4],[5,6],[7,8],[9,10]], 6);
SQL 错误 [22023]: 错误: sample size must be between 0 and 5

数组随机排序

array_shuffle() 函数可以基于数组的第一个维度将元素进行随机排序(洗牌)。例如:

SELECT array_shuffle(ARRAY['a','b','c','d','e','f']);
array_shuffle|
-------------+
{f,c,e,b,a,d}|

SELECT array_shuffle(ARRAY[['a','b'],['c','d'],['e','f']]);
array_shuffle      |
-------------------+
{{c,d},{a,b},{e,f}}|

除了第一个维度之外,其他维度上的元素顺序仍然保存不变。文章来源地址https://www.toymoban.com/news/detail-493572.html

到了这里,关于PostgreSQL 16新特性之数组抽样和随机排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 概率统计·样本及抽样分布【随机样本、抽样分布】

    总体:试验的全部可能的观察值称为总体 个体:总体中每个可能的观察值称为个体 总体期望=样本平均期望 总体方差/n=样本平均方差 X 1 ,X 2 ……X n 相互独立(x 1 ,x 2 ……x n 是观察值),称为总体X的一个简单随机变量(样本) 联合=(全部)边缘相乘 函数表示化(不含未

    2024年02月10日
    浏览(57)
  • java数组.day16(冒泡排序,稀疏数组)

    冒泡排序无疑是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。 代码示例: 当一个数组中大部分元素为0,或者

    2024年04月11日
    浏览(38)
  • JS中数组随机排序实现(原地算法sort/shuffle算法)

    🐱个人主页: 不叫猫先生 🙋‍♂️作者简介:专注于前端领域各种技术,热衷分享,期待你的关注。 💫系列专栏:vue3从入门到精通 📝个人签名:不破不立 在谈sort之前,我们先了解一下原地算法,什么事原地算法呢?所谓 原地算法 就是说基于原有的数据结构进行一定的

    2023年04月08日
    浏览(43)
  • 计算物理学复习笔记(一) 连续随机变量的抽样(直接、变换抽样,三类舍选法)

    使用教材:马文淦《计算物理学》,限于篇幅,这本书上部分知识写得并不十分详细,根据我复习时的一点想法,分享给大家参考。 本篇分享的是连续分布的随机变量抽样的几种方法(直接、变换抽样法,三类舍选法,复合抽样法,课本2.3节)。 首先不防问自己一个问题,

    2024年02月05日
    浏览(107)
  • 随机抽样一致(RANSAC)算法及matlab实现

    RANSAC为 RANdom SAmple Consensus (随机抽样一致)的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。它于1981年由 Fischler 和 Bolles 最先提出。 RANSAC算法的应用背景是在一堆观察点中估计出某个模型 y y y 。 以2D模型为例,RA

    2024年02月01日
    浏览(47)
  • 【应用统计学】简单随机抽样的区间估计和样本容量的确定

    1.总体服从正态分布,且方差已知 若随机变量X服从正态分布,那么它抽样分布的 样本均值 也服正态分布。同时,我们可以先将它转化为标准正态分布 根据区间估计的定义,我们可以构造总体均值μ的置信区间。对于给定的显著性水平 α ,有  将式(5.13)代入上式得到:  对上

    2024年02月11日
    浏览(42)
  • 【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS拉丁超立方抽样、Halton、正交/均匀设计、随机rand函数)

    [a b]区间随机数生成: A=a+(b-a)rand(m,n) m:待生成矩阵A的行数 n: 待生成矩阵A的列数 示例:生成-5到5之间的随机数 A = randi - 整数均匀随机分布 A= A = A = 每个正交表都有一个表头符号,记作LN(mk),表示该正交表有N行k列,每一列由整数1,2,…,m组成。 用表LN(mk)安排试验时,

    2024年02月02日
    浏览(59)
  • Python,Numpy中随机抽样的函数 np.random.choice()详解

    np.random.choice() 是NumPy库中的一个函数,用于从给定的一维数组或可迭代对象中随机抽样。这个函数具有以下参数和功能: 参数 a :表示从中抽取随机样本的数组或整数。如果 a 是一个整数,则抽样将从 np.arange(a) 中进行。 size :输出样本的大小。默认情况下,返回单个值。你

    2024年02月06日
    浏览(48)
  • hive 随机抽样 distribute by rand() sort by rand() limit n

    在分析或者处理大规模数据时,由于数据量较大时,一般只能随机抽样一部分的数据来分析,那么如何进行随机抽样呢? 下面有几种方法,目前常用的是 distribute by rand() sort by rand() limit n order by rand() : order by 是全局的,比较耗时, 只有一个reduce,是真正的随机 sort by rand()

    2023年04月23日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包