T SQL 透視資料(十三)

2022-01-12 18:34:14 字數 2443 閱讀 1169

透視資料實際上就是行狀態轉為例狀態

先加一張測試表

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行轉換成例 

select

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;

sql server 還支援乙個子句用於 行轉列 pivot  是以from內嵌 表表示式實現的

select

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;

pivot  (資料行)  for  要轉的列  in (轉那幾個資料)

資料透視表

源明 資料透視表 的用法,他們總問俺 錦繡 又是那個怪怪的 資料透視表 源明 什麼怪怪的,上次不是給你說了,它的用途可大了,尤其是統計一些資料的時候,不用函式就能實現,有人從這些分析中能賺著大錢呢 錦繡 可是有點兒複雜,你知道唄,俺就奇怪你們學理科的人,寫出的東西又枯燥又難懂,俺就學不會,源明 所以...

資料透視表

寫在前面 最近給自己立下乙個任務 掌握excel中的資料透視表 vlookup,如果還有餘力可以再掌握其vba基礎。而因為已經具備程式設計基礎,所以我認為學習vba應該也不是什麼難事,前兩種的話,希望可以達到在簡歷上寫 熟練使用excel中的資料透視表 vlookup 而一點都不心虛,把能力扎扎實實...

資料透視表

恢復 ctrl y 全選 單擊左右翻頁箭頭按住shift鍵 一,透視表基本用法 選中製表單元格 插入資料透視表 拖動 月,部門,發生額 更改統計方法 單擊左上角計數項 求和,平均值,最大值 單擊右鍵 選擇值欄位數值 雙擊單元格看明細 二,更改時間單位 選中 插入 資料透視表 拖拽訂購日期 選中任意時...