LINUX.ORG.RU

История изменений

Исправление theNamelessOne, (текущая версия) :

Особенно интересно в данном примере почему строка (‘personel’, 5, 3500) вылезла первой

А какого результата ты ожидал? У тебя в запросе нет сортировки, а это значит, что постгрес тебе мог вернуть первым результатом какую угодно строку из запроса и был бы прав.

Вот тебе пример с сортировкой по одному из рангов:

SELECT depname, empno, salary,
       rank() OVER (PARTITION BY depname ORDER BY salary DESC) AS "rank by salary within department",
       rank() OVER (PARTITION BY salary ORDER BY empno ASC)
FROM empsalary
ORDER BY 4;

Исходная версия theNamelessOne, :

Особенно интересно в данном примере почему строка (‘personel’, 5, 3500) вылезла первой

А какого результата ты ожидал? У тебя в запросе нет сортировки, а это значит, что пострес тебе мог вернуть первым результатом какую угодно строку из запроса и был бы прав.

Вот тебе пример с сортировкой по одному из рангов:

SELECT depname, empno, salary,
       rank() OVER (PARTITION BY depname ORDER BY salary DESC) AS "rank by salary within department",
       rank() OVER (PARTITION BY salary ORDER BY empno ASC)
FROM empsalary
ORDER BY 4;