日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql distinct多个字段_数据分析|记一“道”难忘的SQL面试题...

發(fā)布時間:2023/12/19 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql distinct多个字段_数据分析|记一“道”难忘的SQL面试题... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近被一個簡單的SQL問題吊打,強(qiáng)顏歡笑

好了正文開始

一問:SQL中的 group by 和 distinct 了解嗎,簡單介紹一下?

了解了解,“Group By”從字面意義上理解就是根據(jù)“By”指定的規(guī)則對數(shù)據(jù)進(jìn)行分組,所謂的分組就是將一個“數(shù)據(jù)集”劃分成若干個“小區(qū)域”,然后針對若干個“小區(qū)域”進(jìn)行數(shù)據(jù)處理。

distinct是一個關(guān)鍵字,常用于select之后,用于取出去重之后的值。

追問:可以可以,那你能描述一下它倆之間的關(guān)系嗎?

(之前一直沒注意過group by和distinct之間還有關(guān)系...)

其實仔細(xì)想想,group by是分組合并,既然分組就會“減少”一部分?jǐn)?shù)據(jù);distinct主要是去重操作,同樣也會減少一部分?jǐn)?shù)據(jù),既然都會減少一部分?jǐn)?shù)據(jù),這是不是就是他們的共通之處??

所以,group by 和 distinct 都可以用于去重。那有什么區(qū)別呢?

簡單創(chuàng)建一個測試表object,有兩個字段編號no和名字name,添加一些數(shù)據(jù),如圖1所示,要求去重輸出,輸出結(jié)果為【1001 狗哥】和【1002 小盒】。

圖1

分別測試如下SQL語句:

SELECT DISTINCT name FROM object ----------------------------------- SELECT DISTINCT name, no FROM object

可以發(fā)現(xiàn),當(dāng)單獨(dú)對name字段去重后,輸出如下圖圖2所示:

圖2

確實達(dá)到了對name字段去重的效果,可是要是使用 "SELECT DISTINCT name,no"語句,會發(fā)現(xiàn)輸出結(jié)果如圖3所示

圖3

仔細(xì)對比圖一發(fā)現(xiàn),只有兩個字段完全一樣的數(shù)據(jù)【1001 狗哥】被去掉,其他只有一個字段重復(fù)的數(shù)據(jù)并沒有變化。其實這就反映了一個事實:distinct主要是針對全部字段去重,即去掉完全一樣的數(shù)據(jù)。

要想每個字段只保留同一個值,即針對單字段去重,也就是題目中所要求的輸出【1001 狗哥】和【1002 小盒】,可以采用group by聚合去重,代碼如下:

SELECT no, name FROM object GROUP BY name

輸出結(jié)果如圖4所示,達(dá)到最初目的:

圖4

總結(jié)

distinct和group by都可以用來去重,不同之處是distinct針對全部字段去重,而group by可以針對全部字段中的單一字段去重。

此外,兩者執(zhí)行方式不同,distinct主要是對數(shù)據(jù)兩兩進(jìn)行比較,需要遍歷整個表。group by分組類似先建立索引再查索引,當(dāng)數(shù)據(jù)量較大時,group by速度要優(yōu)于distinct。

所以在實際應(yīng)用中,經(jīng)常會采用group by去重,比如計算獨(dú)立訪客數(shù)UV,獨(dú)立IP數(shù)和用戶留存率時,都需要對用戶id等信息去重,采用group by可以大幅縮短時間。

總結(jié)

以上是生活随笔為你收集整理的sql distinct多个字段_数据分析|记一“道”难忘的SQL面试题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。