sql - 如何只更新一定比例的匹配值

标签 sql postgresql sql-update

我有一个表,除其他外,还包含以下字段:id 整数、status_id 整数、add_date 日期

我想执行类似这样的查询:

更新表集 status_id = new_status_id where status_id = old_status_id

但是它只会更新给定百分比的值,比如 50%。此外,每个日期更新行的分布应该是相似的;我想要更新 date = 23.06.2013 的一半行,一半不更新。

最佳答案

update table
set status_id = new_status_id
where
    status_id = old_status_id
    and random() < 0.5

关于sql - 如何只更新一定比例的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223612/

相关文章:

php - 数据库表设计多个表的外键

asp.net - 关于 SQL-Server 查询的建议

c# - 日期时间有太多小数位

postgresql - Postgres,重复唯一索引

postgresql - 创建 : could not connect to database template1: FATAL: password authentication failed for user

php - 这个查询有什么问题?我正在尝试根据第二个表中列的值更新列值

MySQL - 使用 SET 语句更新查询取决于前一个 SET 语句的结果

php - 如何使用 php mysqli 更新多于 99 的行

sql - 从加入的(1 到许多)postgresql 接收 1 行

sql - 使用 Postgresql 计算用户流失率