Postgresql

在 PostgreSQL 中使用 generate_series() 獲取不同的 random() 值

  • November 10, 2021

我正在嘗試生成隨機數據(以卷為單位)並嘗試將 PostgreSQL 的random()函式與 一起使用generate_series(),如圖所示:

SELECT
 (SELECT random()) AS a,
 (SELECT random()) AS b,
FROM generate_series(1,3);

但是,我每行得到相同的隨機值

  a   |   b   
-------+-------
0.124 | 0.443 
0.124 | 0.443 
0.124 | 0.443 

如何解決?

是的,相當煩人的“功能”。您可以通過攪拌一點外部查詢來解決問題,但不會有意義地改變結果。

SELECT
 (SELECT random()+f/1e39) AS a,
 (SELECT random()+f/1e39) AS b
FROM generate_series(1,3) f(f);

引用自:https://dba.stackexchange.com/questions/302430