SQL Server 요약 복습(1)
With cube, With rollup
--
declare @t table(goodsname VARCHAR(max) ,sku1name VARCHAR(max) , sku2name VARCHAR(max), qty INT)
insert @t select ' TX',' ','S',1
insert @t select ' TX',' ','S',2
insert @t select ' TX',' ','L',3
insert @t select ' ',' ','L',4
insert @t select ' ',' ','S',5
insert @t select ' ',' ','L',6
insert @t select ' ',' ','L',7
insert @t select ' ',' ','S',8
SELECT * FROM @t
select goodsname,sku1name,sku2name,sum(qty) sumqty
from @t
group by goodsname,sku1name,sku2name with rollup
ORDER BY goodsname,sku1name,sku2name
select goodsname,sku1name,sku2name,sum(qty) sumqty
from @t
group by goodsname,sku1name,sku2name with cube
ORDER BY goodsname,sku1name,sku2name
-----------------------
declare @t table(goodsname VARCHAR(max) ,sku1name VARCHAR(max) , sku2name VARCHAR(max), qty INT)
insert @t select ' TX',' ','S',1
insert @t select ' TX',' ','S',2
insert @t select ' TX',' ','L',3
insert @t select ' ',' ','L',4
insert @t select ' ',' ','S',5
insert @t select ' ',' ','L',6
insert @t select ' ',' ','L',7
insert @t select ' ',' ','S',8
--GROUPING SETS
SELECT goodsname,sku1name,sku2name, SUM(qty) FROM @t GROUP BY GROUPING SETS(goodsname,sku1name,sku2name)
SELECT goodsname, sku1name, sku2name ,SUM(qty) FROM @t
GROUP BY GROUPING SETS(goodsname), ROLLUP(sku1name,sku2name)
ORDER BY goodsname,sku1name,sku2name
SELECT goodsname, sku1name, sku2name ,SUM(qty) FROM @t
GROUP BY ROLLUP(goodsname,sku1name,sku2name)
ORDER BY goodsname,sku1name,sku2name
SELECT CASE WHEN GROUPING(goodsname) = 1 THEN '[ALL]' ELSE goodsname END goodsname,
CASE WHEN GROUPING(sku1name) = 1 THEN '[ALL]' ELSE sku1name END sku1name,
CASE WHEN GROUPING(sku2name) = 1 THEN '[ALL]' ELSE sku2name END sku2name ,SUM(qty) FROM @t
GROUP BY GROUPING SETS(goodsname), ROLLUP(sku1name,sku2name)
ORDER BY goodsname,sku1name,sku2name
10.pivot 와 unpivot 전 자 는 행 열 에 사 용 됩 니 다.주의:반드시 집합 함수 로 PIVOT 와 함께 사용 해 야 합 니 다.모임 을 계산 할 때 값 열 에 나타 난 어떠한 빈 값 도 고려 하지 않 습 니 다.일반적인 상황 에서 열 에 있 는 하위 조회 로 pivot 문 구 를 대체 할 수 있 습 니 다.그러나 이렇게 하면 효율 이 높 지 않 습 니 다.후 자 는 열 에서 줄 을 바 꿀 수 있 습 니 다.주의:만약 에 일부 열 에 null 값 이 있 으 면 걸 러 지고 새로운 줄 이 생기 지 않 습 니 다.문법 적 으로 For 전에 지정 한 새 열 은 원래 표 에서 지정 한 열 이름 의 값 에 대응 합 니 다.For 후에 지정 한 새 열 은 원래 표 에서 지정 한 열 이름 의 제목 의 값 에 대응 합 니 다.둘 다 공통점 이 있 습 니 다.문법 적 으로 마지막 에 별명 이 있어 야 합 니 다.IN 에서 지정 한 열 형식 은 일치 해 야 합 니 다.예시 코드 는 다음 과 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.