목차
피벗의 작동 방식
기본 피벗 구문
예 : 피벗 사용
피벗 사용 :
결과:
기억해야 할 핵심 요점
대안 : 조건부 집계 (비 지식)
PIVOT를 사용하는시기
데이터 베이스 SQL SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?

SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?

Aug 08, 2025 am 11:44 AM

SQL Server의 피벗은 값을 집계하고 한 열에서 고유 한 항목을 새 열 헤더로 회전시켜 행 데이터를 열로 변환하여 요약 보고서를 작성하는 데 이상적입니다. 세 가지 작업을 수행합니다. Sum 또는 Count와 같은 함수를 사용하여 집계, 비 임시 열별로 그룹화 및 지정된 열 값을 열로 회전합니다. 기본 구문에는 IN 절에서 사전 정의 된 값 목록이 필요하므로 정적 및 사례에 민감하게 만들고 누락 된 조합을 위해 NULLS가 반환됩니다. 예를 들어, 행 값 (Apple, Banana)으로 제품이있는 판매 테이블에서 피벗을 사용하면 영업 사원 당 총 판매를 보여주는 열로 변환합니다. 주요 포인트에는 알려진 피벗 값의 필요성, 조건부 집계와 비교하여 잠재적 성능 트레이드 오프 및 고정 카테고리의 클리너 구문이 포함됩니다. 또는 Case 및 Group의 조건부 집계는 동적 시나리오에 대한 유연성을 제공합니다. 몇 개월 또는 제품 유형과 같이 카테고리가 고정되고 알려진 경우 피벗을 사용하고 알려지지 않았거나 변경된 피벗 값에 대한 동적 SQL을 고려하십시오. 피벗은 집계, 그룹화 및 회전을 사용하여 행을 열로 회전합니다 .2. IN 절에서 알려진 피벗 값의 정적 목록이 필요합니다 .3. 범주 형 데이터를 열로 회전하는 동안 집계 (예 : Sum)가 숫자 데이터에 적용됩니다 .4. 조합 누락은 널 값을 초래합니다 .5. 케이스와의 조건부 집계는 유연한 대안으로 사용될 수 있습니다 .6. 피벗은보고 시나리오에서 고정 된 알려진 범주에 가장 적합합니다 .7. 피벗 값을 미리 알 수없는 경우 동적 SQL이 권장됩니다.

SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?

SQL Server의 피벗 연산자는 데이터를 행에서 열로 변환하는 데 사용되어 데이터를보다 읽기 쉬운 또는 분석적 형식으로 요약하기 위해 테이블을 효과적으로 회전시킵니다. 하나의 열에서 고유 한 값을 출력의 여러 열로 변환하고 관련 데이터에서 집계 (Sum, Count, AVG)를 수행 할 때 일반적으로 사용됩니다.

SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?

이는 매월 판매 행을 매달 열로 전환하는 것과 같은 요약 보고서를 작성하는 데 특히 유용합니다.


피벗의 작동 방식

피벗은 세 가지 주요 작업을 수행합니다.

SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?
  1. 집계 - 열에서 SUM() 또는 COUNT() 와 같은 함수를 적용합니다.
  2. 그룹화 - 데이터를 하나 이상의 열별로 그룹화합니다 (피벗 조항에 명시 적으로 명시되지는 않지만 추론.
  3. 회전 - 고유 한 값을 지정된 열에서 새 열 헤더로 바꿉니다.

기본 피벗 구문

 <피보트 열>, 선택을 선택하십시오. 
       [첫 번째 피벗 열] <column name>, 
       [두 번째 피벗 열] <column name>,
       ...
에서 
    (<테이블>에서 <courncs>를 선택) source_table로
피벗
(
    aggregate_function (<column to aggregate>)
    <column to pivot>에서 ([첫 번째 피벗 열], [두 번째 피벗 열], ...)
) pivot_table로서;

참고 : IN 절의 값은 미리 알리고 명시 적으로 나열되어야합니다.


예 : 피벗 사용

판매 테이블이 있다고 가정합니다.

SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?
 테이블 판매 생성 (
    영업 사원 Nvarchar (50),
    제품 nvarchar (50),
    SalesaMount int
);

판매 가치에 삽입하십시오
( &#39;Alice&#39;, &#39;Apple&#39;, 100),
( &#39;Alice&#39;, &#39;Banana&#39;, 150),
( &#39;Bob&#39;, &#39;Apple&#39;, 200),
( &#39;밥&#39;, &#39;바나나&#39;, 100),
( &#39;Alice&#39;, &#39;Apple&#39;, 50);

제품을 칼럼으로 사용하여 1 인당 총 판매를 원합니다.

피벗 사용 :

 영업 사원, [Apple], [바나나] 선택
에서
(
    영업 사원, 제품, SalesaMount를 선택하십시오
    판매에서
) sourcetable
피벗
(
    Sum (SalesaMount)
    ([Apple], [바나나]의 제품의 경우
) 피벗 테이블로;

결과:

영업 사원 사과 바나나
앨리스 150 150
단발 200 100

여기:

  • SalesPerson 로드 식별자로 남아 있습니다.
  • Product 값 ( Apple , Banana )은 열 헤더가됩니다.
  • SUM(SalesAmount) 은 각 조합에 대해 계산됩니다.

기억해야 할 핵심 요점

  • 정적 목록이 필요합니다 : 당신은 당신이 피봇하고있는 값을 알아야합니다. 쿼리를 다시 작성하지 않고는 새로운 값을 동적으로 포함시킬 수 없습니다 (동적 SQL을 사용하지 않는 한).
  • CASE SENSITIVITY : IN 절의 열 이름은 데이터베이스 콜레이션에 따라 대소 문자를 사용합니다.
  • NULLS : 조합이 존재하지 않으면 (예 : Bob은 오렌지를 판매하지 않았습니다) NULL 반환합니다.
  • 성능 : PIVOT는 간단한 경우의 경우 조건부 집계보다 덜 효율적일 수 있지만 더 깨끗하고 읽기 쉽습니다.

대안 : 조건부 집계 (비 지식)

CASEGROUP BY 으로 유사한 결과를 얻을 수 있습니다.

 선택하다 
    영업 사원,
    Sum (Product = &#39;Apple&#39;이면 Salesavount Else 0 End), Apple, Sum (사례), Apple,
    합 (제품시기의 경우 = &#39;바나나&#39;그런 다음 Salesavount Else 0 End) 바나나로서
판매에서
영업 사원에 의한 그룹;

이것은 동적 시나리오에 더 유연하며 종종 디버그하기 쉽습니다.


PIVOT를 사용하는시기

  • 고정 카테고리 (예 : 월, 제품 유형)로 보고서를 생성하고 있습니다.
  • 여러 CASE 명령문보다 클리너 구문을 선호합니다.
  • 피벗의 뚜렷한 값은 알려져 있고 제한적입니다.

동적 시나리오 (예 : 알 수없는 제품 목록)의 경우 Pivot과 함께 동적 SQL을 사용하는 것을 고려하십시오.


기본적으로 Pivot은 범주를 열로 전환해야 할 때 SQL Server의 데이터를 재구성하기위한 강력한 도구입니다. 항상 가장 빠른 것은 아니지만 적절하게 사용하면 쿼리를 더 읽을 수 있습니다.

위 내용은 SQL Server의 피벗 연산자는 무엇이며 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

예측 분석을위한 SQL 예측 분석을위한 SQL Jul 20, 2025 am 02:02 AM

예측 분석에서 SQL은 데이터 준비 및 기능 추출을 완료 할 수 있습니다. 핵심은 요구 사항을 명확히하고 SQL 기능을 합리적으로 사용하는 것입니다. 특정 단계에는 다음이 포함됩니다. 1. 데이터 준비는 여러 테이블에서 과거 데이터를 추출하고 매일 판매량을 집계하고 관련 프로모션 정보를 집계하고 청소해야합니다. 2. 기능 프로젝트는 창 함수를 사용하여 LAG ()를 통해 사용자의 최근 구매 간격을 얻는 것과 같은 시간 간격 또는 지연 기능을 계산할 수 있습니다. 3. 데이터 세분화는 Row_number ()로 날짜별로 정렬하고 컬렉션 유형을 비례 적으로 표시하는 등 시간에 따라 교육 세트 및 테스트 세트를 나누는 것이 좋습니다. 이러한 방법은 예측 모델에 필요한 데이터 기반을 효율적으로 구축 할 수 있습니다.

에지 컴퓨팅 및 SQL : 가장자리에서의 데이터 처리 에지 컴퓨팅 및 SQL : 가장자리에서의 데이터 처리 Jul 21, 2025 am 01:15 AM

SQL을 사용하여 Edge Computing 시나리오에서 데이터를 처리하는 것이 전송 압력을 줄이고 응답 속도를 높이기 때문에 중요 해집니다. 핵심 이유에는 데이터 분산, 대기 시간 감도 및 제한된 리소스가 포함됩니다. 과제에는 자원 제약, 다양한 데이터 형식, 높은 실시간 요구 사항 및 복잡한 배포 및 유지 보수가 포함됩니다. 배포 프로세스에는 에지에 적합한 SQL 엔진 선택, 데이터 소스 액세스, SQL 스크립트 작성 및 결과 출력이 포함됩니다. 유용한 팁에는 창 함수 사용, 필터링 및 샘플링, 중첩 쿼리 단순화, 메모리 테이블 사용 및 외부 데이터 소스 연결이 포함됩니다.

SQL 개발자를위한 관계형 데이터베이스 설계 원칙 SQL 개발자를위한 관계형 데이터베이스 설계 원칙 Jul 21, 2025 am 01:56 AM

관계형 데이터베이스를 설계 할 때는 네 가지 주요 원칙을 따라야합니다. 먼저, 데이터 무결성 및 연관 정확도를 보장하기 위해 1 차 및 외국 주요 제약 조건을 올바르게 사용합니다. 둘째, 표준화 된 설계를 합리적으로 수행하고 일반적으로 세 번째 정규 형태 (3NF)에 도달하여 중복성을 제거하고 데이터 일관성을 보장합니다. 셋째, 쿼리 성능을 향상 시키지만 과도한 인덱스를 피하기 위해 공통 쿼리에 적절한 인덱스를 설정합니다. 마지막으로, 일관된 이름 지정 사양 및 구조 스타일을 사용하여 가독성과 유지 관리를 향상시킵니다. 이러한 원칙을 마스터하면 명확하고 효율적이며 강력한 데이터베이스 구조를 구축하는 데 도움이 될 수 있습니다.

SQL Server의 격리 레벨 : Commited, Snapshot, Serializable을 읽습니다 SQL Server의 격리 레벨 : Commited, Snapshot, Serializable을 읽습니다 Jul 21, 2025 am 12:35 AM

thethreemainsqlserverisolationlevels (읽기, 스냅 샷 및 서신화 가능-differinconcurrencyandconsistency.1.ReadCommittedPreventsDirtyReadsButallowsnon-RepeatableAbableAdbeAtableAndphantOmreads, 제공 밸런스 포트 컨퍼런스, 및 CANUSERCSOTUREDUCLOCKING

SQL Serverless 컴퓨팅 옵션 SQL Serverless 컴퓨팅 옵션 Jul 27, 2025 am 03:07 AM

SQLServer 자체는 서버리스 아키텍처를 지원하지 않지만 클라우드 플랫폼은 유사한 솔루션을 제공합니다. 1. Azure의 ServerlessSQL 풀은 자원 소비에 따라 데이터를 직접 쿼리하고 청구 할 수 있습니다. 2. COSMOSDB 또는 Blobstorage와 결합 된 Azureftionstion은 경량 SQL 처리를 실현할 수 있습니다. 3. Awsathena는 S3 데이터의 표준 SQL 쿼리를 지원하고 스캔 된 데이터를 기반으로 충전을 지원합니다. 4. GoogleBigQuery는 FederatedQuery를 통해 서버리스 개념에 접근합니다. 5. SQLServer 함수를 사용해야하는 경우 AzuresQLDatabase의 Serverless Service가없는 선택을 선택할 수 있습니다.

비즈니스 인텔리전스 분석 용 SQL 마스터 링 비즈니스 인텔리전스 분석 용 SQL 마스터 링 Jul 26, 2025 am 07:53 AM

TomasterSqlforbianalytics, startByNdatsandingBidattandingStandingBidatswructures andlefactionalgationswithGroupByAndhaving, LeveragedFintimes foreanalysis, andwriteclean, mathretablequeries.first, graspdimensionalmodelingtojoi

SQL에서 테이블의 이름을 바꾸는 방법은 무엇입니까? SQL에서 테이블의 이름을 바꾸는 방법은 무엇입니까? Jul 21, 2025 am 02:19 AM

테이블 이름 변경은 일반적으로 Renametable 또는 Altertable 명령을 사용하여 SQL로 구현됩니다. 1.mysql, mariadb 및 기타 데이터베이스는 renametable_table_nametonew_table_name을 사용합니다. 구문은 배치 작업을 지원합니다. 2. sqlserver는 sp_rename 저장 프로 시저가 필요하며 구문은 execsp_rename'old_table_name ','new_table_name '입니다. 3.postgresql은 altertableold_table_namerenametonew_table_name을 사용합니다

SQL의 두 날짜의 차이를 어떻게 계산합니까? SQL의 두 날짜의 차이를 어떻게 계산합니까? Aug 02, 2025 pm 01:29 PM

두 날짜의 차이를 계산하려면 데이터베이스 유형에 따라 해당 기능을 선택해야합니다. 1. Datediff ()를 사용하여 MySQL의 일 차이를 계산하거나 TimesTampDiff ()의 시간 및 분과 같은 단위를 지정합니다. 2. SQLServer에서 Datediff (date_part, start_date, end_date)를 사용하고 단위를 지정하십시오. 3. PostgreSQL에서 직접 감산을 사용하여 일차 차이를 얻거나 추출물 (Dayfromage (...))를 사용하여보다 정확한 간격을 얻습니다. 4. Julianday () 함수를 사용하여 SQLITE의 일 차이를 빼십시오. 항상 날짜 주문에주의하십시오

See all articles