久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SQL中去除重復(fù)數(shù)據(jù)的幾種方法匯總(窗口函數(shù)對(duì)數(shù)據(jù)去重)

瀏覽:128日期:2023-05-02 10:03:14
目錄
  • 方法1:distinct
  • 方法2:group by
  • 方法3:窗口函數(shù)

使用SQL對(duì)數(shù)據(jù)進(jìn)行提取和分析時(shí),我們經(jīng)常會(huì)遇到數(shù)據(jù)重復(fù)的場(chǎng)景,需要我們對(duì)數(shù)據(jù)進(jìn)行去重后分析。

以某電商公司的銷(xiāo)售報(bào)表為例,常見(jiàn)的去重方法我們用到distinct 或者group by 語(yǔ)句, 今天介紹一種新的方法,利用窗口函數(shù)對(duì)數(shù)據(jù)去重。

【字段解釋】

訪客id:進(jìn)入店鋪瀏覽寶貝的客戶(hù)

瀏覽時(shí)間:訪客進(jìn)入店鋪瀏覽頁(yè)面的日期

瀏覽時(shí)常:訪客進(jìn)入店鋪瀏覽頁(yè)面的時(shí)長(zhǎng)

現(xiàn)在需要知道店鋪里每個(gè)訪客和對(duì)應(yīng)的瀏覽日期(每個(gè)訪客同一天瀏覽多次算做一次記錄)

【解題思路】

方法1:distinct

SQL書(shū)寫(xiě)如下:

select distinct 訪客id ,瀏覽時(shí)間      from 淘寶日銷(xiāo)售數(shù)據(jù)表;

查詢(xún)結(jié)果:

這里用distinct語(yǔ)句多字段進(jìn)行去重的時(shí)候,需要特別注意2點(diǎn):

1)distinct語(yǔ)法規(guī)定對(duì)單字段、多字段去重,必須放在第一個(gè)查詢(xún)字段前。

2)如果對(duì)表中多列字段進(jìn)行去重,去重的過(guò)程就是將多字段作為整體去重,比如上面的例子,我們將訪客id和瀏覽時(shí)間為整體去去重,而不是對(duì)訪客id單獨(dú)去重后再對(duì)姓名單獨(dú)去重,所以會(huì)出現(xiàn)相同的訪客id對(duì)應(yīng)不同的瀏覽時(shí)間。

方法2:group by

SQL書(shū)寫(xiě)如下:

select 訪客id ,瀏覽時(shí)間     from 淘寶日銷(xiāo)售數(shù)據(jù)表group by 訪客id ,瀏覽時(shí)間;

查詢(xún)結(jié)果:

group by對(duì)訪客id 和瀏覽時(shí)間進(jìn)行分組,分組匯總后改變了表的行數(shù),一行只有一個(gè)類(lèi)別,這里使用group by后會(huì)將訪客id 和瀏覽時(shí)間作為一個(gè)類(lèi)別保留,重復(fù)的就會(huì)不顯示。

方法3:窗口函數(shù)

使用窗口函數(shù)進(jìn)行去重時(shí),比distinct和group by稍微復(fù)雜些,窗口函數(shù)不會(huì)減少原表中的行數(shù),而是對(duì)字段進(jìn)行分組后排序。詳細(xì)的窗口函數(shù)講解

窗口函數(shù)的基本語(yǔ)法如下:

<窗口函數(shù)> over (partition by <用于分組的列名>order by <用于排序的列名>)

根據(jù)題目要求得出每個(gè)訪客和對(duì)應(yīng)的瀏覽日期,我們對(duì)訪客id ,瀏覽時(shí)間進(jìn)行分組,對(duì)瀏覽時(shí)長(zhǎng)(秒)進(jìn)行排序。

SQL書(shū)寫(xiě)如下:

select 訪客id ,瀏覽時(shí)間 ,row_number()over(partition by 訪客id ,瀏覽時(shí)間order by 瀏覽時(shí)長(zhǎng)(秒)) as 排名     from 淘寶日銷(xiāo)售數(shù)據(jù)表;

查詢(xún)結(jié)果:

窗口函數(shù)查詢(xún)按照每個(gè)客戶(hù)和瀏覽日期分組,如果同一天有幾次瀏覽,會(huì)根據(jù)點(diǎn)贊數(shù)排序,篩選排名為1,即可得出每個(gè)訪客和對(duì)應(yīng)的瀏覽日期。

SQL書(shū)寫(xiě)如下:

select 訪客id ,瀏覽時(shí)間 ,row_number()over(partition by 訪客id ,瀏覽時(shí)間order by 瀏覽時(shí)長(zhǎng)(秒)) as 排名     from 淘寶日銷(xiāo)售數(shù)據(jù)表;

查詢(xún)結(jié)果:

去除重復(fù)項(xiàng)的三種操作,你get了嗎?歡迎評(píng)論區(qū)補(bǔ)充你的去重辦法~

到此這篇關(guān)于SQL中去除重復(fù)數(shù)據(jù)的幾種方法,我一次性都告你?的文章就介紹到這了,更多相關(guān)sql去除重復(fù)數(shù)據(jù)內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: 陵水| 确山县| 玛沁县| 屯门区| 靖边县| 上高县| 乐平市| 枣庄市| 望江县| 灌南县| 普洱| 玛多县| 东山县| 永清县| 睢宁县| 扎兰屯市| 三都| 庆云县| 阜平县| 云安县| 依安县| 盐源县| 湖口县| 贡山| 东山县| 岳阳县| 迭部县| 静安区| 民权县| 来宾市| 华蓥市| 潞西市| 安国市| 高雄市| 东城区| 白沙| 安康市| 涪陵区| 八宿县| 波密县| 三原县|