"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 쿼리로 PostgreSQL 그룹에서 각 그룹의 첫 번째 행을 선택하는 방법은 무엇입니까?

쿼리로 PostgreSQL 그룹에서 각 그룹의 첫 번째 행을 선택하는 방법은 무엇입니까?

2025-02-10에 게시되었습니다
검색:848

How to Select the First Row of Each Group in a PostgreSQL GROUP BY Query?

postgresql 그룹별로 그룹의 첫 번째 행을 선택하십시오

PostgreSQL에서 작전 별 그룹의 각 그룹의 첫 번째 행을 선택하는 것이 일반적인 요구 사항입니다. 이렇게하려면 Clause에서 강력한 구별을 사용할 수 있습니다.

SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC

clause의 이라면 어떤 표현이 복제로 간주되는지 정의 할 수 있습니다. 이 경우 customer 열을 지정합니다. 즉, 동일한 고객

값을 갖는 행만 중복으로 간주됩니다.

주문에 의해 주문은 행이 처리되는 순서를 정의합니다. 각 고객 그룹의 첫 번째 행은 총 가치가 가장 높은 행입니다. 다중 행의 최대 총 값이 동일하면 결정적인 요소는 id

열이 정의되는 순서가됩니다.

키 포인트

  • 표현식에서 뚜렷한
  • 표현식은 순서에서 순서의 주요 표현식과 일치해야합니다.
  • 주문에 의해
  • 주문은 각 그룹의 우선 순위를 결정하는 데 사용될 수 있습니다.
  • Order에서 순서에 clause에 의해 목록에서 주문에 가 아닌 표현식을 포함시킬 수 있습니다.
  • 쿼리에서 사용하는 색인은 성능에 큰 영향을 미칩니다. 쿼리와 동일한 순서로
  • 고객 , id 열에 이르는 멀티 컬럼 인덱스는 최상의 성능을 제공합니다.
추가 지침

의 구별 메소드는 높은 열 가열성 (고객 당 소수의 행)을 가진 데이터에 매우 효율적입니다. 그러나 고객 열의 카디널리티가 낮은 데이터의 경우 (고객 당 많은 행 수) 다른 쿼리 기술이 더 효율적일 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3