首页 > 解决方案 > 如何在 postgresql 中生成带有 id 的随机数序列查询?

问题描述

我想在 posgresql 中生成唯一的“随机”数字。

select s
from generate_series(1, 5) as s
order by random();

此查询结果如下:

| s |
|---|
| 2 |
| 5 |
| 1 |
| 3 |
| 4 |

但我想在它后面加上一个 id,如下所示:

| id | s |
|----|---|
|  1 | 2 |
|  2 | 5 |
|  3 | 1 |
|  4 | 3 |
|  5 | 4 |

标签: sqlpostgresql

解决方案


您可以使用ROW_NUMBER 函数

SELECT 
ROW_NUMBER () OVER (ORDER BY random()) AS id,
s
FROM generate_series(1, 5) AS s;

推荐阅读