Rank pay within each team
Your task
Given staff with columns name, team, salary, hired and manager, rank each person by salary within their team, highest first, using dense ranking so ties share a rank. Return name, team and rank as an integer, sorted by team ascending and then rank ascending and then name ascending.
Examples
pay_rank(staff: dataframe) -> dataframeExample 1
Input
pay_rank(staff)staff
More rows not shown
| name | team | salary | hired | manager |
|---|---|---|---|---|
| Ada | eng | 120 | 2021-03-01 | Grace |
| Grace | eng | 150 | 2019-06-15 | NULL |
| Linus | eng | 95 | 2022-01-10 | Grace |
| Mel | sales | 80 | 2020-11-05 | Kay |
| Kay | sales | 110 | 2018-02-20 | NULL |
| Ivan | sales | 80 | 2023-07-01 | Kay |
| Jean | design | 105 | 2021-09-30 | NULL |
| Nia | design | 140 | 2022-05-04 | Jean |
Output
More rows not shown
| name | team | rank |
|---|---|---|
| Nia | design | 1 |
| Jean | design | 2 |
| Grace | eng | 1 |
| Ada | eng | 2 |
| Linus | eng | 3 |
| Omar | sales | 1 |
| Kay | sales | 2 |
| Ivan | sales | 3 |