最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL去重的3種實(shí)用方法總結(jié)

 更新時(shí)間:2022年10月26日 09:29:57   作者:1024小神  
SQL去重是數(shù)據(jù)分析工作中比較常見的一個(gè)場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于SQL去重的3種實(shí)用方法的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

SQL去重的三種方法匯總? 

這里的去重是指:查詢的時(shí)候, 不顯示重復(fù),并不是刪除表中的重復(fù)項(xiàng)

1.distinct去重

注意的點(diǎn):distinct

只能一列去重,當(dāng)distinct后跟大于1個(gè)參數(shù)時(shí),他們之間的關(guān)系是&&(邏輯與)關(guān)系,只有全部條件相同才會(huì)去重

弊端:當(dāng)查詢的字段比較多時(shí),distinct會(huì)作用多個(gè)字段,導(dǎo)致去重條件增多

select distinct UserResult from Table1

2.group by去重

去重原理:將重復(fù)的行進(jìn)行分組,相同的數(shù)據(jù)只顯示第一行

弊端:使用group by后,所有查詢字段都需要使用聚合函數(shù),比較繁瑣

select min(UserName)UserName,min(UserSex)UserSex,min(UserSubject)UserSubject,min(UserResult)UserResult from Table1
group by UserResult

3.row_number() over (parttion by 分組列 order by 排序列)

弊端:小孟還不知道

去重原理:現(xiàn)根據(jù)重復(fù)列進(jìn)行分組,分組后再進(jìn)行排序,不同的組序號(hào)為1,相同的組序號(hào)為2,排除為2的就達(dá)到了去重效果

select *from
(
--查詢出重復(fù)行
select *,row_number() over (partition by UserResult order by UserResult desc)num from Table1
)A
where A.num=1

這里安利第三個(gè),row_number(),穩(wěn)一些!

補(bǔ)充:SQL根據(jù)某列或幾列分組去重——row_number() over(partition by)的用法

有時(shí)利用SQL進(jìn)行數(shù)據(jù)處理會(huì)發(fā)現(xiàn),要根據(jù)某列或某幾列選取信息,由于其他列不同而出現(xiàn)了多次,如運(yùn)行程序1的結(jié)果圖1:

程序1:

--程序1:要解決的問題
select a.*
  from AShareEarningEst a
 where a.S_INFO_WINDCODE in ('000650.SZ')
   and a.REPORTING_PERIOD = 20181231
order by a.RESEARCH_INST_NAME,a.EST_DT

我們看到,在AShareEarningEst(中國(guó)A股盈利預(yù)測(cè)明細(xì))表中,共有12人次的證券公司研究員,對(duì)000650.SZ(仁和藥業(yè))公司的20181231報(bào)告期進(jìn)行預(yù)測(cè)。例:華泰證券的楊燁輝在20160420、20160428和20160622分別對(duì)000650.SZ(仁和藥業(yè))發(fā)布研究報(bào)告進(jìn)行了預(yù)測(cè)?,F(xiàn)在,我們只需要同一家證券公司的同一個(gè)研究員(此處假定同一家證券公司的研究員姓名相同時(shí),即為同一個(gè)研究員)做出的最新預(yù)測(cè)數(shù)據(jù),即根據(jù)證券公司名稱、研究員姓名,同時(shí)根據(jù)估計(jì)日期進(jìn)行篩選。

此時(shí),可根據(jù)row_number() over(partition by)進(jìn)行處理,運(yùn)行程序2結(jié)果如圖2:

程序2:

--程序2:最終解決問題的程序
select b.*
from (select row_number() over(partition by a.RESEARCH_INST_NAME,
              a.ANALYST_NAME order by est_dt desc) as rn,
             --根據(jù)RESEARCH_INST_NAME(證券公司名稱)和ANALYST_NAME(研究員名字)進(jìn)行分類,
             --同時(shí)根據(jù)est_dt(估計(jì)日期)倒序排序,即最新日期排在同一分類的上方,此時(shí)構(gòu)建出rn為
             a.*
        from wdzx.AShareEarningEst a
       where a.S_INFO_WINDCODE in ('000650.SZ') --, '000951.SZ', '600006.SH', '600166.SH')
         and a.REPORTING_PERIOD = 20181231) b --將分類后的程序構(gòu)成表b??梢韵冗\(yùn)行b的程序觀察結(jié)果
       where b.rn = 1--運(yùn)用表b的結(jié)果進(jìn)行子查詢,rn=1即為所需結(jié)果

此時(shí),即主要利用了row_number() over(partition by)函數(shù)篩選出了去重后的結(jié)果。

總結(jié)

到此這篇關(guān)于SQL去重的3種實(shí)用方法的文章就介紹到這了,更多相關(guān)SQL去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql數(shù)據(jù)庫(kù)雙機(jī)熱備難點(diǎn)分析

    Mysql數(shù)據(jù)庫(kù)雙機(jī)熱備難點(diǎn)分析

    本文主要給大家介紹了在Mysql數(shù)據(jù)庫(kù)雙機(jī)熱備其中的難點(diǎn)分析以及重要環(huán)節(jié)的經(jīng)驗(yàn)心得,需要的朋友收藏分享下吧。
    2017-12-12
  • 淺談MySQL存儲(chǔ)引擎選擇 InnoDB與MyISAM的優(yōu)缺點(diǎn)分析

    淺談MySQL存儲(chǔ)引擎選擇 InnoDB與MyISAM的優(yōu)缺點(diǎn)分析

    MyISAM 是MySQL中默認(rèn)的存儲(chǔ)引擎,一般來說不是有太多人關(guān)心這個(gè)東西。決定使用什么樣的存儲(chǔ)引擎是一個(gè)很tricky的事情,但是還是值我們?nèi)パ芯恳幌?,這里的文章只考慮 MyISAM 和InnoDB這兩個(gè),因?yàn)檫@兩個(gè)是最常見的
    2013-06-06
  • 20分鐘MySQL基礎(chǔ)入門

    20分鐘MySQL基礎(chǔ)入門

    這篇文章主要為大家分享了20分鐘MySQL基礎(chǔ)入門教程,快速掌握MySQL基礎(chǔ)知識(shí),真正了解MySQL,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • MySQL 8 新特性之Invisible Indexes

    MySQL 8 新特性之Invisible Indexes

    這篇文章主要介紹了MySQL 8 新特性之Invisible Indexes 的相關(guān)資料,需要的朋友可以參考下
    2018-05-05
  • DQL命令查詢數(shù)據(jù)實(shí)現(xiàn)方法詳解

    DQL命令查詢數(shù)據(jù)實(shí)現(xiàn)方法詳解

    DQL(Data?Query?Language,數(shù)據(jù)查詢語言),查詢數(shù)據(jù)庫(kù)數(shù)據(jù),如SELECT語句,簡(jiǎn)單的單表查詢或多表的復(fù)雜查詢和嵌套查詢,數(shù)據(jù)庫(kù)語言中最核心、最重要的語句,使用頻率最高的語句
    2022-09-09
  • MySql按時(shí),天,周,月進(jìn)行數(shù)據(jù)統(tǒng)計(jì)

    MySql按時(shí),天,周,月進(jìn)行數(shù)據(jù)統(tǒng)計(jì)

    這篇文章主要介紹了MySql按時(shí),天,周,月進(jìn)行數(shù)據(jù)統(tǒng)計(jì),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • MySQL關(guān)于sql_mode解析與設(shè)置講解

    MySQL關(guān)于sql_mode解析與設(shè)置講解

    今天小編就為大家分享一篇關(guān)于MySQL關(guān)于sql_mode解析與設(shè)置講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL自增ID耗盡實(shí)例講解

    MySQL自增ID耗盡實(shí)例講解

    這篇文章主要給大家介紹了關(guān)于MySQL自增ID耗盡的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JDBC鏈接MySQL8的注意事項(xiàng)及說明

    JDBC鏈接MySQL8的注意事項(xiàng)及說明

    這篇文章主要介紹了JDBC鏈接MySQL8的注意事項(xiàng)及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • mysql數(shù)據(jù)庫(kù)中g(shù)etshell的方式總結(jié)

    mysql數(shù)據(jù)庫(kù)中g(shù)etshell的方式總結(jié)

    MySQL版本大于5.0,MySQL 5.0版本以上會(huì)創(chuàng)建日志文件,我們通過修改日志文件的全局變量,就可以GetSHELL,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)中g(shù)etshell的方式,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

岐山县| 郧西县| 偃师市| 虞城县| 桦甸市| 特克斯县| 东莞市| 右玉县| 阳曲县| 晴隆县| 新建县| 玉溪市| 崇礼县| 梓潼县| 永吉县| 湄潭县| 涪陵区| 宜兰市| 永修县| 贺州市| 云梦县| 台南市| 滕州市| 鄂伦春自治旗| 汾西县| 格尔木市| 行唐县| 威宁| 海口市| 滨州市| 广宁县| 嵊州市| 呼伦贝尔市| 张掖市| 德州市| 高平市| 镇江市| 墨竹工卡县| 保康县| 简阳市| 渭源县|