Select 过滤和排序行列表 PostgreSQL 中的行位置

Select row position in filtered and ordered row list PostgreSQL

我收到了这个查询,

SELECT s.pos
  FROM (SELECT t.guild_id, t.user_id
      ROW_NUMBER() OVER(ORDER BY t.reputation DESC) AS pos
    FROM users t) s
WHERE (s.guild_id, s.user_id) = (, )

获取公会中用户的 "rank",但我想按 t.user_id 值数组(如 {'1', '64', '83'})中的条目过滤结果并具有此影响结果 pos 值。我找到了 FILTERWITHIN GROUP,但我不确定如何将其中之一放入此查询中。我该怎么做?

这里是完整的 table 如果有帮助的话:

                        Table "public.users"
   Column   |         Type          | Collation | Nullable | Default 
------------+-----------------------+-----------+----------+---------
 guild_id   | character varying(20) |           | not null | 
 user_id    | character varying(20) |           | not null | 
 reputation | real                  |           | not null | 0
Indexes:
    "users_pkey" PRIMARY KEY, btree (guild_id, user_id)

为什么不先 select 呢?

WITH UsersWeCareAbout AS (
  SELECT * FROM users u WHERE u.user_id = ANY(subgroup_array)
), RepUsers AS (
  SELECT t.guild_id, t.user_id, ROW_NUMBER() OVER(ORDER BY t.reputation DESC) AS pos
  FROM UsersWeCareAbout t
) SELECT s.pos FROM RepUsers s WHERE (s.guild_id, s.user_id) = (, )

(未经测试只是因为我没有足够的上下文来测试)