집 >데이터 베이스 >MySQL 튜토리얼 >Oracle SQL에서 여러 행을 단일 행으로 집계하는 방법은 무엇입니까?
Oracle 데이터베이스에서는 테이블의 여러 행을 하나의 행으로 병합하여 여러 열이 있는 테이블 구조를 만들어야 할 수도 있습니다. 다음 스키마를 가진 테이블이 있다고 가정합니다.
<code>A 1 A 2 B 1 B 2</code>
다음과 같은 예상 결과를 얻으려면:
<code>A 1 2 B 1 2</code>
Oracle은 이러한 요구 사항을 충족하기 위해 특정 SQL 기능을 제공합니다.
경고: WM_CONCAT 함수는 이제 더 이상 사용되지 않으며 Oracle 12c 이상에서 제거되었습니다. 이후 버전에서 이를 사용하면 예상치 못한 결과가 발생할 수 있습니다.
<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field2;</code>
최신 Oracle 버전의 경우 LISTAGG 함수를 사용하는 것이 좋습니다.
<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
사용 중인 Oracle 버전에서 WM_CONCAT이나 LISTAGG 함수를 모두 사용할 수 없는 경우 다음 단계에 따라 사용자 정의 집계를 구현할 수 있습니다.
맞춤 집계는 사전 정의된 함수를 사용하는 것보다 더 복잡하고 계산 집약적일 수 있습니다.
위 내용은 Oracle SQL에서 여러 행을 단일 행으로 집계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!