好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQL基礎教程之行轉列Pivot函數

SQL基礎教程之行轉列Pivot函數

熱門標簽:泗洪正規電話機器人找哪家 河北便宜電銷機器人軟件 怎么去開發一個電銷機器人 簡單的智能語音電銷機器人 南昌呼叫中心外呼系統哪家好 小程序智能電話機器人 ai電話電話機器人 湖南保險智能外呼系統產品介紹 怎么申請400熱線電話

前言

未來的一個月時間中,會總結一系列SQL知識點,一次只總結一個知識點,盡量說明白,下面來說說SQL 中常用Pivot 函數(這里是用的數據庫是SQLSERVER,與其他數據庫是類似的,大家放心看就好)

讓我們先從一個虛構的場景中來著手吧

萬國來朝,很多供應商每天都匯報各自的收入情況。先來創建一個DailyIncome 表

create table DailyIncome(VendorId nvarchar(10), IncomeDay nvarchar(10), IncomeAmount int)

--VendorId 供應商ID,
--IncomeDay 收入時間
--IncomeAmount 收入金額

緊接著來插入數據看看

(留意看下,有的供應商某天中會有多次收入,應該是分批進賬的)

insert into DailyIncome values ('SPIKE', 'FRI', 100)
insert into DailyIncome values ('SPIKE', 'MON', 300)
insert into DailyIncome values ('FREDS', 'SUN', 400)
insert into DailyIncome values ('SPIKE', 'WED', 500)
insert into DailyIncome values ('SPIKE', 'TUE', 200)
insert into DailyIncome values ('JOHNS', 'WED', 900)
insert into DailyIncome values ('SPIKE', 'FRI', 100)
insert into DailyIncome values ('JOHNS', 'MON', 300)
insert into DailyIncome values ('SPIKE', 'SUN', 400)
insert into DailyIncome values ('JOHNS', 'FRI', 300)
insert into DailyIncome values ('FREDS', 'TUE', 500)
insert into DailyIncome values ('FREDS', 'TUE', 200)
insert into DailyIncome values ('SPIKE', 'MON', 900)
insert into DailyIncome values ('FREDS', 'FRI', 900)
insert into DailyIncome values ('FREDS', 'MON', 500)
insert into DailyIncome values ('JOHNS', 'SUN', 600)
insert into DailyIncome values ('SPIKE', 'FRI', 300)
insert into DailyIncome values ('SPIKE', 'WED', 500)
insert into DailyIncome values ('SPIKE', 'FRI', 300)
insert into DailyIncome values ('JOHNS', 'THU', 800)
insert into DailyIncome values ('JOHNS', 'SAT', 800)
insert into DailyIncome values ('SPIKE', 'TUE', 100)
insert into DailyIncome values ('SPIKE', 'THU', 300)
insert into DailyIncome values ('FREDS', 'WED', 500)
insert into DailyIncome values ('SPIKE', 'SAT', 100)
insert into DailyIncome values ('FREDS', 'SAT', 500)
insert into DailyIncome values ('FREDS', 'THU', 800)
insert into DailyIncome values ('JOHNS', 'TUE', 600)

讓我們先來看看前十行數據:

select top 10 * from DailyIncome

如圖所示:


DailyIncome

雖然數據是能夠完全給展示了,但好像一眼望去不能得到對我們用處更大的信息,比如說我們想得到每個供應商的每天的總收入,這時我們應該做一些數據形式的轉變了,平常的所用的是這樣的。

select VendorId ,
sum(case when IncomeDay='MoN' then IncomeAmount else 0 end) MON,
sum(case when IncomeDay='TUE' then IncomeAmount else 0 end) TUE,
sum(case when IncomeDay='WED' then IncomeAmount else 0 end) WED,
sum(case when IncomeDay='THU' then IncomeAmount else 0 end) THU,
sum(case when IncomeDay='FRI' then IncomeAmount else 0 end) FRI,
sum(case when IncomeDay='SAT' then IncomeAmount else 0 end) SAT,
sum(case when IncomeDay='SUN' then IncomeAmount else 0 end) SUN
from DailyIncome group by VendorId

得到如下的結果:


case when結果

如果大家仔細看結果的話,會有這樣的發現,這是把VendorID進行了分組,并且對于每組中IncomeDay這一列中的值都變成了新的列名字,然后對IncomeAmount進行求和操作。

這樣寫可能是有些麻煩,別著急,我們用Pivot函數進行行轉列試下。

select * from DailyIncome ----第一步
pivot 
(
sum (IncomeAmount) ----第三步
for IncomeDay in ([MON],[TUE],[WED],[THU],[FRI],[SAT],[SUN]) ---第二步
) as AvgIncomePerDay

來解釋下,要想用好Pivot函數,應該理解代碼注釋中的這幾步。

第一步:肯定是要明白數據源了,這里是DailyIncome

第二步:要明白要想讓哪一列的值做新的列名字

第三步:要明白對于這新的列要求那些值呢?

下面有個練習題目,做之前不要看答案啊

問:對于SPIKE這家供應商來說,每天最大的入賬金額。

select * from DailyIncome
pivot (max (IncomeAmount) for IncomeDay in ([MON],[TUE],[WED],[THU],[FRI],[SAT],[SUN])) as MaxIncomePerDay
where VendorId in ('SPIKE')

參考鏈接如下:

1.Pivot tables in SQL Server. A simple sample

2.行轉列:SQL SERVER PIVOT與用法解釋

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Pandas透視表(pivot_table)詳解
  • pandas pivot_table() 按日期分多列數據的方法
  • C#實現Excel動態生成PivotTable
  • 行轉列之SQL SERVER PIVOT與用法詳解
  • SQL知識點之列轉行Unpivot函數
  • Pandas 重塑(stack)和軸向旋轉(pivot)的實現
  • Python Pivot table透視表使用方法解析

標簽:荊門 江蘇 柳州 景德鎮 瀘州 威海 那曲 淮安

巨人網絡通訊聲明:本文標題《SQL基礎教程之行轉列Pivot函數》,本文關鍵詞  SQL,基礎,教程,之行,轉列,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL基礎教程之行轉列Pivot函數》相關的同類信息!
  • 本頁收集關于SQL基礎教程之行轉列Pivot函數的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 女邻居丰满的奶水小说| 韩国漫画免费观看| 60岁老熟女A片免费观看| 狠狠的日| 色婷婷在线视频| 深夜爽爽福利图出处| 免费高清毛片天天看| 中文字幕久久无码欧美| 把女人弄得特爽黄A大片| 我见探花多娇媚| 5177.tv草草影院| 公侵犯玩弄熟睡人妻的后果| 91欧美精品激情在线观看最新| 操女老师| 高潮喷水50p| 午夜视频在线观看www中文| 特黄一级毛片| 亚洲AV成人精品一区二区三区| 丰都县| 成人在线91| 免费看黄网页| 免费网站在线观看人数在哪电视剧| 国产亚洲精久久久久久无码苍井空| 美女动态啪啪图| 韩剧社| 欧美专区亚洲| 免费精品视频| 欧美伦理在线播放| 爽好舒服老男人| 不可饶恕在线观看韩国电影| 一本色道久久88亚洲综合加勒比 | 睡在我上铺的兄弟| 在线看污网站| 婬色男女乱婬视频一级呼噜网| 女性做亲爱的过程视频| 两个男生互插| 巨人族新娘| 太粗好紧使劲舒服| 久久久精品人妻一区二区三区色秀| 好爽好硬| 干老女|