사용하여 포스트 그레스 9.3 ... 내가 중첩되지 배열에 직접 최대 기능을 사용할 수없는 이유Postgres : int 배열에서 최대 값 찾기?
누군가가 설명해 주시겠습니까 ..?
불충분 한 함수는 select 문과 마찬가지로 "setof"를 리턴한다는 것을 이해합니다. 그러면이 쿼리의 짧은 버전이 작동하지 않는 이유는 무엇입니까? (개념적으로 뭔가가 없거나 구문과 관련된 문제입니까?)
table: foo_history:
id | history::smallint
-----------------------------------
1 | {10,20,30,50,40}
이것은 작동하지 않습니까?
Select id, max(unnest(history)) as vMax from foo_history;
...하지만 이건 ...?
WITH foo as (
select id, unnest(history) as history
from foo_history
)
Select
id, max(history) as vMax
From foo
Group by id;
그래서 문제를 해결, 난 아직도 조금 혼란스러워. 'unnest'함수는 행 집합을 반환하고 max 함수는 행 집합에 대해 연산을 수행합니다. 거기에 버그가 있거나 내가 얻지 못하는 것이 있습니까? – user2259963
예, 있습니다. 'max'는 집합체이므로 튜플 당 하나의 입력에 대해 연산을합니다. 그것은 그처럼 입력으로 집합을 취할 수 없습니다. 표현 방법을 설명하기 위해 'select id (unest (history) x에서 max (x)를 foo_history에서 vmax로 선택'과 같은 부질의를 사용할 것입니다. –