PostgreSQL 16新特性之数组抽样和随机排序
-- 假设存在一个名为items的表,其中包含一个名为tags的数组类型字段
-- 从数组字段中随机抽取一个元素
SELECT item_id, unnest(tags) AS tag FROM items TABLESAMPLE sys_random_sample_size(1000);
-- 对数组字段进行随机排序,并选取每个数组的前两个元素
SELECT item_id, unnest(tags) WITH ORDINALITY AS t(tag, ord) FROM items
ORDER BY random()
LIMIT 10;
这个例子展示了如何从PostgreSQL 16中的数组字段进行随机抽样,并且如何对数组进行随机排序。TABLESAMPLE
子句结合sys_random_sample_size
函数可以有效地从数组中随机抽取样本。ORDER BY random()
用于对数组进行随机排序,并且WITH ORDINALITY
提供了一个可以用来控制排序的序号信息。
评论已关闭