sql - 查询将订单存储为 postgresql 中的值

标签 sql postgresql

我有这张简单的玩家表

id | name | score | place

我想知道是否有一个查询可以让我按score 对玩家进行排序并根据顺序更新place

最佳答案

您可以使用 update 执行此操作,假设 id 在每一行中都是唯一的:

update players
    set place = p.new_place
    from (select p.*, row_number() over (order by score) as new_place
          from players p
         ) p
    where players.id = p.id;

关于sql - 查询将订单存储为 postgresql 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44242142/

相关文章:

sql - 什么是 SQL Server 中的坏索引以及如何识别它们?

java - JDBC java.sql.Date() 比较给出 false

sql - 使用 PostgreSQL 删除基于选择查询中字段的重复行?

sql - 从oracle数据库中选择日期格式ddmmyyyy

mysql - 选择中存在星号是否排除其他列?

mysql - 在一行中加入列

django - 如何将服务器端游标与 django 和 psycopg2 一起使用?

sql - 一个表可以拥有的最大有用索引数?

ruby-on-rails - 在 Rails 4 中使用 postgres 数组,如何返回数组中所有唯一项的数组?

sql - 如何查询存储在数组中的 Rails ActiveRecord 数据