保罗·拉姆齐:使用PostgreSQL随机函数掷骰子

保罗·拉姆齐:使用PostgreSQL随机函数掷骰子

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

介绍了在PostgreSQL中生成随机数的方法,包括生成均匀分布的随机数、生成指定范围内的随机整数、从数组中随机选择元素、从表中随机选择行、生成正态分布的随机数,以及PostgreSQL使用的伪随机数生成器的工作原理。

🎯

关键要点

  • 生成随机数在程序中是常见任务,PostgreSQL提供简单的函数满足随机需求。
  • random()函数返回0.0到1.0之间的均匀分布的双精度浮点数。
  • 要生成指定范围内的随机整数,可以通过对random()结果进行缩放和取整。
  • 可以从数组中随机选择元素,使用ceil()或floor()函数来处理浮点数。
  • 从表中随机选择行的方法包括使用ORDER BY random(),但对于大表效率低下。
  • 可以通过为表添加随机列并索引来提高随机行选择的效率。
  • 使用TABLESAMPLE子句可以从表中随机抽样。
  • 可以将整个集合分成随机组,通过随机排序来实现分组。
  • 正态分布是常用的概率分布,可以使用random_normal(mean, stddev)函数生成。
  • random()函数是伪随机的,使用确定性过程生成看似随机的数列。
  • PostgreSQL使用Blackman/Vigna的xoroshiro128 1.0伪随机数生成器,启动时设置种子值。
➡️

继续阅读