創(chuàng)建數(shù)據(jù)庫文件
文件-新建連接-sqllite-新建sqllite3-數(shù)據(jù)庫文件-選擇存放位置
導(dǎo)入數(shù)據(jù)
下載文件
這是數(shù)據(jù)分析師的excel實(shí)戰(zhàn)數(shù)據(jù)的下載地址:
https://pan.baidu.com/s/1eUjcGaI
提取密碼:g5xa
選擇編碼
gb2312-windows電腦數(shù)據(jù)文件
utf-8 linux電腦數(shù)據(jù)文件
table是表名低葫,column是我們想要查詢的字段/列,column可以用 * 代替仍律,指代全部字段嘿悬,意為從table表查詢所有數(shù)據(jù)。
select column from table
where 是基礎(chǔ)查詢語法染苛,用于條件判斷鹊漠。
select * from DataAnalyst
where city = '上海'
上圖是最簡化的查詢語句,將所有城市為上海的職位數(shù)據(jù)過濾出來茶行。我們也可以用 and 進(jìn)行多條件判斷。
select * from DataAnalyst
where city = '上海' and positionName = '數(shù)據(jù)分析師'
當(dāng)我們涉及到非常復(fù)雜的與或邏輯判斷登钥,應(yīng)該怎么辦畔师?比如即滿足條件AB,又要滿足條件C牧牢,或者是滿足條件DE看锉。此時(shí)需要用括號明確邏輯判斷的優(yōu)先級姿锭。
select * from DataAnalyst
where (city = '上海' and positionName = '數(shù)據(jù)分析師') or (city = '北京' and positionName = '數(shù)據(jù)產(chǎn)品經(jīng)理')
接下來的問題來了,當(dāng)我們要查詢多個(gè)條件伯铣,比如北京上海廣州深圳南京這些城市呻此,難道一個(gè)個(gè)用and關(guān)聯(lián)起來?這太麻煩了腔寡,我們可以使用 in 焚鲜。
select * from DataAnalyst
where city in ('北京','上海','廣州','深圳','南京')
當(dāng)我們遇到字段數(shù)據(jù)類型是數(shù)值時(shí),也可以使用符號> 放前、>=忿磅、< 、<=凭语、!= 進(jìn)行邏輯判斷葱她,!= 指的是不等于,等價(jià)于 <> 似扔。
select * from DataAnalyst
where companyId >= 10000
當(dāng)我們需要取區(qū)間數(shù)值時(shí)吨些,使用 between and
select * from DataAnalyst
where companyId between 10000 and 20000
between and 包括數(shù)值兩端的邊界,等同于 companyId >=10000 and companyId <= 20000炒辉。
如果要模糊查找豪墅,能用like。
select * from DataAnalyst
where positionName like '%數(shù)據(jù)分析%'
語句的含義是在positionName列查找包含「數(shù)據(jù)分析」字段的數(shù)據(jù)辆脸,%代表的是通配符但校,含義是無所謂「數(shù)據(jù)分析」前面后面是什么內(nèi)容。如果是 '數(shù)據(jù)分析%' 啡氢,則代表字段必須以數(shù)據(jù)分析開頭状囱,無所謂后面是什么。
group by倘是,它是數(shù)據(jù)分析中常見的語法亭枷,目的是將數(shù)據(jù)按組/維度劃分。類似于Excel中的數(shù)據(jù)透視表搀崭,我們以city為例叨粘。
select * from DataAnalyst
group by city
它將城市劃分成幾組,通過group by 可以快速的瀏覽數(shù)據(jù)有哪些城市瘤睹。我們看一下它的高階用法升敲。
select city,count(1) from DataAnalyst
group by city
上述語句,使用count函數(shù)轰传,統(tǒng)計(jì)計(jì)數(shù)了每個(gè)城市擁有的職位數(shù)量驴党。括號里面的1代表以第一列為計(jì)數(shù)標(biāo)準(zhǔn)。這里出現(xiàn)新的問題获茬,當(dāng)我們遇到重復(fù)數(shù)據(jù)怎么辦港庄?在DataAnalyst 這張表中倔既,北京職位包含重復(fù)的職位ID,我們需要去重鹏氧。
select city,count(distinct positionId) from DataAnalyst
group by city
北京的數(shù)據(jù)一下子少了2000渤涌,多余的重復(fù)值被排除在外。distinct 是去重函數(shù)把还,distinct positionId 會只計(jì)算唯一的positionId個(gè)數(shù)实蓬。日常工作中,活躍用戶數(shù)笨篷、文章UV瞳秽,都是用distinct 計(jì)算獲得,這是唯一標(biāo)示符ID的重要作用率翅。
除了count练俐,還有max,min冕臭,sum腺晾,avg等函數(shù),也叫做聚合函數(shù)辜贵。用法和Excel沒什么區(qū)別悯蝉。
當(dāng)我們在group by 添加多個(gè)字段,它將以多維的形式進(jìn)行數(shù)據(jù)聚合托慨。
select city,workYear,count(distinct positionId) from DataAnalyst
group by city,workYear
接下來是新的問題鼻由,如果我想找出各個(gè)城市,數(shù)據(jù)分析師崗位數(shù)量在500以上的城市有哪些厚棵,應(yīng)該怎么計(jì)算蕉世?有兩種方法,第一種婆硬,是使用having語句狠轻,它對聚合后的數(shù)據(jù)結(jié)果進(jìn)行過濾。
select city,count(distinct positionId) from DataAnalyst
group by city having count(distinct positionId) >= 500
第二種彬犯,是利用嵌套子查詢向楼。
我們將第一次查詢獲得的城市職位數(shù)的結(jié)果,看作一張新的表谐区,利用as 將它命名為t1( table1 的簡寫)湖蜕,將職位數(shù)命名為一個(gè)新的字段counts。然后外面再套一層select 過濾出counts >=500宋列。
這種查詢方式就叫嵌套子查詢重荠,使用場景比較廣泛,where 后面也能跟子查詢虚茶。
很多時(shí)候戈鲁,數(shù)據(jù)是凌亂的,我們希望結(jié)果能夠呈現(xiàn)一定的順序嘹叫,這時(shí)候就用到order by語句婆殿。
select city,count(distinct positionId) as counts from DataAnalyst
group by city
order by counts