在postgresql中分配随机数
Assign random number in postgresql
我在 postgresql 中有 table 以及 statename、districtname 和 DistID。现在我想根据每个地区的状态将随机数(从 1 开始到特定州的地区计数)分配给 'DistID' 列。请帮忙。
下面的查询将更新 table,以便州内每个区的编号从 1 开始。
查询以随机顺序分配 ID。如果您想要 predictable 将 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;
Fiddle 示例位于
http://sqlfiddle.com/#!15/86341/5
我在 postgresql 中有 table 以及 statename、districtname 和 DistID。现在我想根据每个地区的状态将随机数(从 1 开始到特定州的地区计数)分配给 'DistID' 列。请帮忙。
下面的查询将更新 table,以便州内每个区的编号从 1 开始。
查询以随机顺序分配 ID。如果您想要 predictable 将 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;
Fiddle 示例位于 http://sqlfiddle.com/#!15/86341/5