|
1 | | -WITH sorted AS( |
2 | | - SELECT *, |
3 | | - ROW_NUMBER() OVER w1 AS row_num, |
4 | | - COUNT(*) OVER w2 AS count |
| 1 | +WITH cte AS ( |
| 2 | + SELECT id,company,salary, |
| 3 | + ABS(ROW_NUMBER() OVER (PARTITION BY company ORDER BY salary,id) - ROW_NUMBER() OVER (PARTITION BY company ORDER BY salary DESC,id DESC)) AS diff |
5 | 4 | FROM employee_569
|
6 | | - WINDOW w1 AS (PARTITION BY company ORDER BY salary), |
7 | | - w2 AS (PARTITION BY company) |
8 | 5 | )
|
9 | | - |
10 | | -SELECT company,ROUND(AVG(salary),2) |
11 | | -FROM sorted |
12 | | -WHERE row_num BETWEEN count::NUMERIC/2 AND count::NUMERIC/2 + 1 |
13 | | -GROUP BY company; |
| 6 | +SELECT id,company,salary |
| 7 | +FROM cte |
| 8 | +WHERE diff = 0 OR diff = 1; |
0 commit comments