SQL語(yǔ)句的知識(shí)點(diǎn)十分零散,但是通用性很強(qiáng)滋戳,大都知名的數(shù)據(jù)型軟件钻蔑,大都會(huì)用到SQL語(yǔ)句啥刻。
在學(xué)習(xí)過程中,很多東西可能不是特別的實(shí)用咪笑,可能有很多更簡(jiǎn)便的方法可帽,但學(xué)習(xí)的過程是熟悉知識(shí)點(diǎn)的過程。
我們學(xué)一樣?xùn)|西窗怒,是為了實(shí)際運(yùn)用蘑拯。了解大塊的知識(shí)點(diǎn),形成一些大體的知識(shí)框架后兜粘,盡量將知識(shí)點(diǎn)運(yùn)用到現(xiàn)有的工作中來。
下面是一些SQL語(yǔ)句的綜合運(yùn)用弯蚜。(當(dāng)然下面的內(nèi)容依舊是記錄的筆記)
案例1:分組篩選排序
demo1
統(tǒng)計(jì)03年各地區(qū)平均純利潤(rùn)前三名的記錄孔轴,要求從大到小排序
- select top 3 地理位置,avg(純利潤(rùn)) as 平均純利潤(rùn) from [demo1$] where 年度="2003年度" group by 地理位置 having avg(純利潤(rùn))>5000 order by avg(純利潤(rùn)) desc
結(jié)果
案例2:聚合函數(shù)、分組與日期函數(shù)碎捺,format函數(shù)運(yùn)用
image.png
統(tǒng)計(jì)2010年各季度銷量總數(shù)量
-
select format(訂單日期,"第q季度") as 季度,sum(數(shù)量) as 總數(shù)量 from [demo2$] where year(訂單日期)=2010 group by format(訂單日期,"第q季度")
image.png
案例3:聚合函數(shù)連接與分組
image.png
要求匯總出每種產(chǎn)品的單價(jià)路鹰,數(shù)量,平均單價(jià)和總數(shù)量收厨。
- select * from [demo
] group by 品名
然后做入數(shù)據(jù)透視表中做簡(jiǎn)單的匯總即可晋柱。
image.png
案例4:匯總多工作薄多工作表
image.png
select *,"語(yǔ)文" as 科目,"一月" as 月份 from [E:\李建杰\代碼\課件\透視表\第2章 SQL與數(shù)據(jù)透視表\2.64\一月.xlsx].[語(yǔ)文] union all select *,"數(shù)學(xué)","二月" from [E:\李建杰\代碼\課件\透視表\第2章 SQL與數(shù)據(jù)透視表\2.64\二月.xlsx].[數(shù)學(xué)] union all select *,"語(yǔ)文","三月" from [E:\李建杰\代碼\課件\透視表\第2章 SQL與數(shù)據(jù)透視表\2.64\三月.xlsx].[語(yǔ)文]
[絕對(duì)路徑].[工作表$]
image.png
案例5:
image.png
統(tǒng)計(jì)每個(gè)月銷售業(yè)績(jī)?yōu)榍叭钠骄鶚I(yè)績(jī)
- select * from(select top 3 業(yè)務(wù)員,[1月] as 業(yè)績(jī),"1月" as 月份 from [demo
] order by [2月] desc)
union all
select * from (select top 3 業(yè)務(wù)員,[3月],"3月" from [demo$] order by [3月] desc)
然后用數(shù)據(jù)透視表簡(jiǎn)單匯總
image.png
案例6:SQL語(yǔ)句排名
先來一個(gè)簡(jiǎn)單的例子
image.png
我們需要將這張表格用EXCEL自帶的名稱管理器定義一下。
image.png
- select ,(select count()+1 from 成績(jī) t2 where t2.班級(jí)= t1.班級(jí) and t2.分?jǐn)?shù)> t1.分?jǐn)?shù)) as 名次 from 成績(jī) t1
sql語(yǔ)句處理數(shù)據(jù)的執(zhí)行順序與編程語(yǔ)言方式差不多诵叁,都是自上而下順序執(zhí)行雁竞。那么在數(shù)據(jù)表中會(huì)形成循環(huán)比對(duì)的效果,這樣通過兩個(gè)條件的限制進(jìn)行計(jì)數(shù)拧额。
image.png
理解了這個(gè)簡(jiǎn)單的例子那么下面略微復(fù)雜的例子就容易理解的多碑诉。
demo - select 組別,業(yè)務(wù)員,
(select count() from [demo] t3 where t3.組別=t1.組別 and t3.[2月]>t1.[2月]) as 2月排名,
(select count() from [demo] t1
image.png