>source

다른 날짜의 가격 변동을 추적하는 테이블이 있습니다.

| ID | price           | date       |
|----|-----------------|------------|
| 1  | {118, 123, 144} | 2020/12/05 |
| 2  | {222, 333, 231} | 2020/12/06 |
| 3  | {99, 55, 33}    | 2020/12/07 |

날짜별로 정렬 된 단일 배열의 모든 가격을 검색하여 다음과 같은 결과를 얻고 싶습니다.

| ID | price                              |
|----|------------------------------------|
| 1  | {118,123,144,222,333,231,99,55,33} |

이것을 어떻게 달성 할 수 있습니까? 도전은 새로운 배열을 만들거나 기존 배열에 값을 추가하는 것 같습니다.

  • 답변 # 1

    적절한 순서로 중첩을 해제하고 다시 집계 할 수 있습니다.

    select array_agg(x.val order by t.date, x.rn) as all_prices
    from mytable t
    cross join lateral unnest(t.price) with ordinality as x(val, rn)
    
    

    한 가지 (아마도) 중요한 것은 원래 배열에서 각 요소의 위치를 ​​추적하여 집계 할 때 두 번째 수준 정렬 기준으로 사용할 수 있다는 것입니다.

관련 자료

  • 이전 kivy, python - 창을 확대 또는 축소 할 때 동적으로 텍스트 크기 조정
  • 다음 c++ - 개인 소멸자로 개체 소멸