今天這篇文章是對比Excel學習SQL系列的第4篇文章,之前3篇的傳送門在這裡:《對行和列的操作》、《庫/表/記錄的增查刪改》、《寫給小白的SQL學習文章》。
計算欄位的意思是通過原有欄位的運算創建新的欄位,本文主要從算術運算符計算欄位、函數計算欄位和聚合函數的應用三個方面來分享。
一、算術運算符計算欄位
算術運算符就是加減乘除運算符,用算術運算符創建欄位直接在select後寫命令。
--select 列 算術運算符 from 表;--從sc成績表裡提取學號、成績以及每個學生的成績加5select snum,score,score + 5 as score2 from sc;給新創建的欄位賦予名稱,用到【AS】命令
這裡我們對sc表裡的score列每個數值都+5得到一個新的score2欄位,如下:
我們想一下這個操作對應在Excel裡就是很簡單的新建一列,然後賦值,如下動圖:
二、函數計算欄位
01 日期函數
對日期時間型數據進行操作的函數,日期函數裡用到較多的是YEAR()、MONTH()、DAY(),Excel裡也有這三個函數,作用都是提取某個日期下的年、月、日的數據。
如下例,提取2003年3月3日出生的學生,這裡可以不用DATE()函數,因為sage列本身就已經預設成了日期格式,需要注意的是,篩選日期時要用單引號引起來。
--提取2003年3月3日出生的學生的數據select * from student1 where sage = '2003-03-03';select * from student1 where DATE(sage) = '2003-03-03';
【MONTH】
再如下例,提取2003年出生的所有學生記錄。
--提取2003年出生的學生的數據select * from studenet1 where YEAR(sage) = 2003;同理,MONTH()函數和DAY()函數也是這樣的用法。這個操作在Excel裡相當於新建一列year欄位,用YEAR()函數作用於sage欄位,得到每個學生出生日期的年份,最後篩選出2003年的學生數據,整個過程如下動圖所示:
02 文本函數
對字符型數據進行操作的函數,這裡文本函數和Excel裡相應函數的用法都是一樣的,不同的是length()函數對應的是Excel裡的len()函數,名字不同罷了,想要複習Excel裡文本函數的同學,傳送門在這裡:《Excel文本函數》
SQL裡的文本函數是這樣的:
函數
說明
使用
Left()
從一個字符串最左邊開始返回指定個數的字符
Left(字符串,返回個數)
right()
從一個字符串最右邊開始返回指定個數的字符
right(字符串,返回個數)
Length()
返回字符串的長度
Length(字符串)
【left】
提取每個學生的姓
--提取學生的姓select sname,left(sname,1) as f_name, sage from student1;在Excel裡是這樣操作:新建一列f_name,對sname作用left函數,如下動圖:
03 數值函數
對數值型數據進行處理的函數,這些函數在Excel裡也是這樣的用法,常見的有:
函數
說明
使用
Abs()
返回一個數值的絕對值
Abs(數值)
Exp()
返回一個數的指數值
Exp(數值)
Round()
把數值四捨五入為指定數值
Round(數值,返回的小數位數)
對成績一列取整:
--對成績一列取整select snum,score,round(score,0) from sc;
三、聚合函數
聚合函數是對數值數據進行匯總的函數,主要有以下:
函數
說明
COUNT()
計數
SUM()
求和
AVG()
平均值
MAX()
最大值
MIN()
最小值
這些和Excel相應函數的用法也一致,需要注意的是同Excel一樣,聚合函數得到的是一個數據,而非一系列查詢後的記錄。
01 COUNT函數
count函數是對行進行計數。
--select count(列) from 表;對特定列的值計數--select count(*) from 表; 可以查看表的總行數--select count(DISTINCT 列) from 表; 去重以後的行數查詢student1表總有有幾行;
查詢性別一列不重複的有幾行
select count(*) from student1;select count(DISTINCT sex) from student1;以上count函數計數的操作在Excel裡就是count函數的應用:
02 SUM函數
sum函數是對指定列求和。
對sc表中的成績一列求和。
select sum(score) from sc;
對學號為1的學生的成績求和:
select sum(score) from sc where snum = 1;第二個列子對學號為1的學生的成績求和,在Excel裡用到sumif條件求和函數,公式「=SUMIF(A:A,A2,C:C)」的意思是對A列裡等於1的條件求和。
03 AVG函數
Acg函數用於對列求平均值,在Excel裡這個函數的名字變了,是average(),大家不要搞混哦。
--select avg(列) from 表;select avg(score) from sc;對成績一列求平均值
在Excel裡,用AVERAGE()函數對score一列求平均值
04 MAX函數
返回指定列中的最大值。
--select max(列) from 表;select max(score) from sc;找出最高成績
在Excel裡用max()函數對score一列求最大值
05 MIN函數
返回制定列中的最小值。
--select min(列) from 表;select min(score) from sc;找出最低的成績
在Excel裡用min()函數對score一列求最小值
06 聚合函數的綜合應用
通過求和、計數、最值的統計進行簡單的描述性統計分析,可以了解數據的大致分布。
select sum(score) as sum_sc,avg(score) as avg_sc,max(score) as max_sc,min(score) as min_sc from scl在Excel裡之前也提到過,用【數據】——【數據分析】——【描述統計】來做描述性統計分析。
step1:打開【數據】——【數據分析】——【描述統計】對話框
step2:將要分析的數據輸入到輸入區域,勾選匯總統計前的選框。
step3:得到分析結果如圖
具體的關於Excel描述統計的內容,請移步《描述性統計分析》前往查看。
對比Excel學習SQL系列的第4篇就到這了,更多精彩敬請期待~
提供入門級數據分析的學習路線規劃,分享從Excel到統計學的乾貨。數據分析是一項技能,希望人人都能分析數據。
相關內容:
SQL學習:MySQL入門 | 庫/表/記錄的增查刪改
Excel分析方法:時間序列分析 | 回歸分析 | 描述性統計分析 | 相關性分析
Excel圖表:數據地圖 | 數據透視表 | 5個基本圖 | 13個進階圖 | 直方圖 | 控制圖 | 排列圖
Excel函數:日期文本函數 | 查找引用函數 | if函數 | 統計函數
用Excel進行數據分析:數據獲取 | 數據處理
方法論:如何系統地學習Excel | 數據分析學習 | Excel相見恨晚的技巧
碼字不易,點個右下角 在看 ,給小姐姐加雞腿喲~