Я новичок в Postgres, и у меня возникли трудности в этом запросе:
У меня есть этот запрос:
SELECT "employees_employee"."primary_title",
"employees_employee"."primary_role_id",
"employees_organization"."benchmark_organization_id" AS "benchmark_organization",
COUNT("employees_employee"."id") FILTER (WHERE "employees_employee"."role_mapping_id" IS NULL) AS "count",
ROW_NUMBER() OVER (PARTITION BY "employees_organization"."benchmark_organization_id", "employees_employee"."primary_role_id" ORDER BY COUNT("employees_employee"."id") FILTER (WHERE "employees_employee"."role_mapping_id" IS NULL) DESC) AS "rank"
FROM "employees_employee"
LEFT OUTER JOIN "employees_job"
ON ("employees_employee"."primary_job_id" = "employees_job"."id")
LEFT OUTER JOIN "employees_organization"
ON ("employees_job"."organization_id" = "employees_organization"."id")
WHERE ("employees_employee"."blueprint_id" = '58b67b16-6890-40d6-8583-210c81647230'::uuid AND "employees_employee"."deleted" IS null)
GROUP BY "employees_employee"."primary_title",
"employees_organization"."benchmark_organization_id",
"employees_employee"."primary_role_id"
Приведенный выше запрос дает мне данные примерно такие:
primary_title |primary_role_id |benchmark_organization |count|rank|
----------------------------------------------------------------------|------------------------------------|------------------------------------|-----|----|
manager |d56aae96-cc70-4ef7-8db9-a6aa85f1a93c|be3555cc-aace-463a-9095-f11fe6e0a6fc| 1| 1|
Unknown Title | |be3555cc-aace-463a-9095-f11fe6e0a6fc| 1| 1|
consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 262| 1|
associate consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 230| 2|
senior associate consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 67| 3|
associate consultant intern |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 21| 4|
incoming associate consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 16| 5|
management consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 10| 6|
senior consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 8| 7|
junior consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 2| 8|
specialist consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 2| 9|
incoming associate consultant intern |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 2| 10|
consulting |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 2| 11|
recruitment consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 12|
director of global consultant talent management |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 13|
industry consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 14|
consultant (private equity group) |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 15|
alliance partner - bulgaria | management consulting |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 16|
associate consultant intern (aci) |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 17|
lenox conyngham scholar at cambridge and incoming associate consultant|0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 18|
practice area consultant in peg automation at bain consulting |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 19|
practice area consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 20|
consultor |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 21|
head of talent and consulting ops, nyc |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 22|
case team leader |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 23|
freelance associate consultant |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 24|
associate consultant ii |0b15c7bd-ce3d-4741-b219-77f15a46df09| | 1| 25|
По сути, я просто пытаюсь подсчитать количество сотрудников с primary_title для каждой комбинации primary_role
& benchmark_organization
. Суть в том, что мне просто нужно 10 самых важных ролей для каждой категории (primary_role
& benchmark_organization
combo)
Для этого мой подход заключался в добавлении ранга к каждой категории данных и фильтрации окончательных данных. в столбце рейтинга.
Обратите внимание, что столбцы count
& rank
являются псевдонимными столбцами, а значения рассчитываются во время выполнения.
Я просто хотел бы отфильтровать записи, где рейтинг меньше чем или равно 10.
Это так же просто, как добавить это к предложению where в Mysql или какой-либо другой СУБД, но похоже, что postgres не поддерживает псевдонимы столбцов в предложении where.
Есть ли альтернативный способ фильтрации результата?