透視資料實際上就是行狀態轉為例狀態
先加一張測試表
if把這張表查出來object_id('
dbo.orders
', '
u') is
notnull
drop
table
dbo.orders;
gocreate
table
dbo.orders
( orderid
intnot
null
, orderdate date
notnull
, empid
intnot
null
, custid
varchar(5) not
null
, qty
intnot
null,
constraint pk_orders primary
key(orderid)
);insert
into
dbo.orders(orderid, orderdate, empid, custid, qty)
values
(30001, '
20070802
', 3, '
a', 10
), (
10001, '
20071224
', 2, '
a', 12
), (
10005, '
20071224
', 1, '
b', 20
), (
40001, '
20080109
', 2, '
a', 40
), (
10006, '
20080118
', 1, '
c', 14
), (
20001, '
20080212
', 2, '
b', 12
), (
40005, '
20090212
', 3, '
a', 10
), (
20002, '
20090216
', 1, '
c', 20
), (
30003, '
20090418
', 2, '
b', 15
), (
30004, '
20070418
', 3, '
c', 22
), (
30007, '
20090907
', 3, '
d', 30
);select
*from dbo.orders;
我們將 custid行轉換成例
selectsql server 還支援乙個子句用於 行轉列 pivot 是以from內嵌 表表示式實現的empid,
sum(case
when custid ='a
'then qty end) as
a,sum(case
when custid ='b
'then qty end) as
b,sum(case
when custid ='c
'then qty end) as
c,sum(case
when custid ='d
'then qty end) as
d from
dbo.orders
group
by empid;
selectpivot (資料行) for 要轉的列 in (轉那幾個資料)empid, a, b, c, d
from (select
empid, custid, qty
from dbo.orders) as
d pivot(
sum(qty) for custid in(a, b, c, d)) as p;
資料透視表
源明 資料透視表 的用法,他們總問俺 錦繡 又是那個怪怪的 資料透視表 源明 什麼怪怪的,上次不是給你說了,它的用途可大了,尤其是統計一些資料的時候,不用函式就能實現,有人從這些分析中能賺著大錢呢 錦繡 可是有點兒複雜,你知道唄,俺就奇怪你們學理科的人,寫出的東西又枯燥又難懂,俺就學不會,源明 所以...
資料透視表
寫在前面 最近給自己立下乙個任務 掌握excel中的資料透視表 vlookup,如果還有餘力可以再掌握其vba基礎。而因為已經具備程式設計基礎,所以我認為學習vba應該也不是什麼難事,前兩種的話,希望可以達到在簡歷上寫 熟練使用excel中的資料透視表 vlookup 而一點都不心虛,把能力扎扎實實...
資料透視表
恢復 ctrl y 全選 單擊左右翻頁箭頭按住shift鍵 一,透視表基本用法 選中製表單元格 插入資料透視表 拖動 月,部門,發生額 更改統計方法 單擊左上角計數項 求和,平均值,最大值 單擊右鍵 選擇值欄位數值 雙擊單元格看明細 二,更改時間單位 選中 插入 資料透視表 拖拽訂購日期 選中任意時...