如何select一个动态排名值?

How to select a dynamic rank value?

我有一家 table 家公司和另一家员工以及他们加入公司的日期。我能够获得每家公司 as shown here 的 5 名最新员工。现在,我只想显示公司 A 的排名 <= 3,公司 B 的排名 <= 8 和公司 C 的无限数量。3、8 和 -1 存储为 "max" 列公司 table。在这种情况下,我如何动态 select 最大值?

你基本上想要:

SELECT *  -- choose the columns you want here
FROM (SELECT e.*, c.max,
             row_number() over (partition by company order by joined desc) as rank
      FROM employees e JOIN
           companies c
           on e.company = c.pk
     ) e
WHERE rank < max or max = -1