【问题标题】:Assign random number in postgresql在 postgresql 中分配随机数
【发布时间】:2015-10-27 19:31:40
【问题描述】:

我在 postgresql 中有带有 statename、districtname 和 DistID 的表。现在我想根据每个地区的州为每个地区的“DistID”列分配随机数(从 1 开始到特定州的地区计数)。请帮忙。

【问题讨论】:

  • 数字在特定状态下是否必须是唯一的,当您说随机时,您的意思是它们需要不可预测,或者您根本不在乎数字是什么?

标签: postgresql function random numbers


【解决方案1】:

下面的查询将更新表格,以便每个地区在州内编号,值从 1 开始。

查询以随机顺序分配 ID。如果您希望将 random() 更改为可预测的区域,它将按区域名称的字母顺序对其进行排序。

update t
set distid = v.distid
from (
select 
  statename, district, 
  row_number() over (partition by statename order by random()) as distid
from t) v
where v.statename = t.statename and v.district = t.district;

小提琴示例在 http://sqlfiddle.com/#!15/86341/5

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多