如何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
我有一家 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