3

他のフィールドとは別に、次のようなフィールドを含むテーブルがありますid integer, status_id integer, add_date date

次のようなクエリを実行したいと思います。

update table set status_id = new_status_id where status_id = old_status_id

しかし、値の特定のパーセント、たとえば 50% のみを更新するものです。さらに、各日付の更新された行の分布は類似している必要があります。更新された行とdate = 23.06.2013更新されていない行の半分が必要です。

4

3 に答える 3

6
update table
set status_id = new_status_id
where
    status_id = old_status_id
    and random() < 0.5
于 2013-06-20T21:02:13.703 に答える
0

ベッドに横になって眠ろうとしているとき、非常に簡単な解決策が頭に浮かびました。

update table
set status_id = new_status_id
where
        status_id = old_status_id
    and id % 2 = 0;

id は実際には であるためbigserial、このクエリは Clodoaldo のものと同様の効果があります。

于 2013-06-21T05:35:25.157 に答える