select res.*, (res.revision_rank - min(revision_rank)) as blah from
(
select distinct branch, test_type, test_suite, test_plan, test_case, build_age, passed, failed, test_count, min_in_case, revision, has_case_comment::int, has_plan_comment::int, has_suite_comment::int, has_type_comment::int, test_job, initialreport, revision_rank from
(select *, MIN(passed) OVER (PARTITION BY branch, test_type, test_suite, test_plan) as min_in_case
FROM test_result_by_case_with_comment
WHERE branch = 'branch' AND REVISION <= 12345 AND (newest_build OR NOT true)) as b1 WHERE min_in_case = 0 OR NOT true
) as res;
Это дает мне следующую ошибку:
ERROR: column "res.branch" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select res.*, (res.revision_rank - min(revision_rank)) as bl...
Но это не кажется приемлемым.Мне нужна каждая строка плюс дополнительный столбец для каждой строки, показывающий разницу между revision_rank этой строки и абсолютным минимумом revision_rank.
Мне нужен абсолютный минимум, а не минимум для раздела или внутри группы.Можно ли здесь делать то, что мне нужно?