У меня есть записи, которые показывают пользователям зарплату и отдел. Я хотел бы знать рейтинг и его разницу.postgres window функция с рейтингом
SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary DESC) FROM empsalary;
depname | empno | salary | rank
-----------+-------+--------+------
develop | 8 | 6000 | 1
develop | 10 | 5200 | 2
develop | 11 | 5200 | 2
develop | 9 | 4500 | 4
develop | 7 | 4200 | 5
personnel | 2 | 3900 | 1
personnel | 5 | 3500 | 2
sales | 1 | 5000 | 1
sales | 4 | 4800 | 2
sales | 3 | 4800 | 2
Я хотел бы знать разницу каждый занимает зарплату
depname | empno | salary | rank | diff
-----------+-------+--------+------+------
develop | 8 | 6000 | 1 | 800
develop | 10 | 5200 | 2 | 700
develop | 11 | 5200 | 2 | 700
develop | 9 | 4500 | 4 | 300
develop | 7 | 4200 | 5 |
personnel | 2 | 3900 | 1 | 400
personnel | 5 | 3500 | 2 |
sales | 1 | 5000 | 1 | 200
sales | 4 | 4800 | 2 |
sales | 3 | 4800 | 2 |
научить меня запрос, который возвращает выше.
привет попытаться ответить на вопрос mo12mo34 ;-) – Claudio
Пожалуйста, добавьте некоторые пояснения к этому, чтобы люди могли узнать, почему это работает – hardillb
зарплаты лаг (зарплата) дает разницу в зарплате от depname – Claudio