sql 을 통 해 데이터 투시 표를 만 들 고 데이터베이스 시트 행렬 변환 (pivot 와 Unpivot 용법) (1)
3510 단어 OracleMSSqlServer
1. MSsqlserver 에서 우리 의 일반적인 용법
1、Sqlserver
---
Create table s(
[name] nvarchar(50),
book nvarchar(50),
saledNumber int
)
----
insert into s ([name],book,saledNumber) values(' ','java ',10);
insert into s ([name],book,saledNumber)values(' ','java ',15);
insert into s ([name],book,saledNumber)values(' ','C# ',8);
insert into s ([name],book,saledNumber)values(' ','java ',7);
insert into s ([name],book,saledNumber)values(' ','java ',9);
insert into s ([name],book,saledNumber)values(' ','java ',2);
insert into s ([name],book,saledNumber)values(' ','C# ',3);
insert into s ([name],book,saledNumber)values(' ','java ',5);
insert into s ([name],book,saledNumber)values(' ','C# ',5);
---1、 case when
SELECT [name], sum(case book when 'java ' then saledNumber else 0 end) as [java ],sum(case book when 'C# ' then saledNumber else 0 end) as [C# ], sum(saledNumber) as [sum] from s group by [name]
---2、 pivot
select sa.name,sa.java ,sa.C# ,sa.java +sa.C# as from s
pivot(sum(saledNumber) for book in (java ,C# )) sa
、oracle
---
Create table s(
name varchar(50),
book varchar(50),
saledNumber number(9)
)
----
insert into s (name,book,saledNumber) values(' ','java ',10);
insert into s (name,book,saledNumber)values(' ','java ',15);
insert into s (name,book,saledNumber)values(' ','C# ',8);
insert into s (name,book,saledNumber)values(' ','java ',7);
insert into s (name,book,saledNumber)values(' ','java ',9);
insert into s (name,book,saledNumber)values(' ','java ',2);
insert into s (name,book,saledNumber)values(' ','C# ',3);
insert into s (name,book,saledNumber)values(' ','java ',5);
insert into s (name,book,saledNumber)values(' ','C# ',5);
----
---1、 case when
SELECT name, sum (case book when 'java 입문 부터 정통 까지' then saledNumber else 0 end) as java 입문 부터 정통 까지, sum (case book when 'C \ # 고급 프로 그래 밍' then saledNumber else 0 end) as C \ # 고급 프로 그래 밍, sum (saledNumber) as sum from s group by name;---2、 pivot
select * from (select name,saledNumber,book from s group by name, saledNumber, book )
pivot(sum(saledNumber) for book in ('java ','C# ')) ;
설명 이 명확 하지 않 거나 잘못된 부분 이 있 으 면 수정 사항 을 알려 주 십시오. Oacle 에 서 는 Pivot 와 Unpivot 에 대해 더 많은 것 을 알려 주 십시오.
간단 한 SQL 을 사용 하여 스프 레 드 시트 형식의 교차 표 보고 서 를 사용 하여 모든 관계 표 의 정 보 를 표시 하고 교차 표 의 모든 데 이 터 를 관계 표 에 저장 합 니 다.Oacle 공식 인 스 턴 스 를 참고 하 십시오.
http://www.oracle.com/technetwork/cn/articles/11g-pivot-101924-zhs.html ---1、 case when
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oracle 생성 향후 3일간의 전체 시점 (단계 상세)수요: X 좌표축 시간은 모두 정시 시간으로 앞으로 3일 동안의 예측을 보여준다(x 축은 앞으로 3일 동안의 정시 시간을 보여준다), 3시간마다 한 눈금, 가로 좌표는 모두 24개의 눈금을 보여준다 1단계: 현재 시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.