일단 쿼리는 아래처럼
SELECT (refid::bigint[])[array_length(refid::bigint[], 1)], refid::bigint[] FROM array_table where rowid = 8; |
해당 필드에는 아래의 값이 text로 저장되어 있는데
{42457771,42457772,42457773,42457774,42457775,42457776,42457777,42474803,42477457,42487546,42491301} |
refid::bigint[] 를 통해서 array로 캐스팅 하고
()[] 를 통해서 해당 위치의 값을 가져오도록 한다.
넣는 순서대로 되서 max 값은 가장 뒤에 일테니,
"" ""
array_length(refid::bigint[].1) 을 통해서 가장 마지막 인덱스를 얻도록 하고
인덱스로 부터 가져오면 성공!
42491301 |
[링크 : https://www.postgresql.org/docs/9.4/functions-array.html]
text로 저장된 녀석을 배열로 되살리기
select '{1,1}'::int[] |
[링크 : https://stackoverflow.com/questions/47359288/convert-a-text-to-an-array-postgresql]
array_agg 함수에서 정렬해서 넣기
SELECT array_agg(a ORDER BY b DESC) FROM table; |
[링크 : https://stackoverflow.com/questions/7317475/postgresql-array-agg-order]
'프로그램 사용 > postgreSQL' 카테고리의 다른 글
postgres regexp_matches() 매칭되는 것이 없을 경우 (0) | 2019.10.16 |
---|---|
sql 결과 공백 제거 (0) | 2019.10.15 |
sql with , (0) | 2019.10.10 |
postgresql 데이터베이스 다른 이름으로 복구하기 (0) | 2019.10.07 |
postgresql rank() over() (0) | 2019.10.04 |