PostgreSQL 實(shí)現(xiàn)distinct關(guān)鍵字給單獨(dú)的幾列去重
PostgreSQL去重問(wèn)題一直困擾著我,distinct和group by遠(yuǎn)不如MySQL用起來(lái)隨便,但是如果掌握了規(guī)律,還是和MySQL差不多的
主要介紹的是distinct關(guān)鍵字
select distinct id,name,sex,age from student
假如有一張student表,字段如上圖,我查詢(xún)student表中所有信息用distinct去重(上面的SQL語(yǔ)句),pgsql就會(huì)根據(jù)所有的字段通過(guò)算法取得重復(fù)行的第一行,但是很明顯,ID這個(gè)字段我在設(shè)計(jì)的時(shí)候不會(huì)讓它重復(fù),所以相當(dāng)于沒(méi)有去重
我想只根據(jù)name和age去重怎么辦?
可以這么寫(xiě)
select distinct on (name,age) id,name,sex,age from student
這樣就會(huì)只根據(jù)name和age去重了
總結(jié)一下:
distinct on (),括號(hào)里面的內(nèi)容是要去重的列,括號(hào)外面的內(nèi)容是你要查詢(xún)展示的列,兩者沒(méi)有關(guān)系,你可以根據(jù)某些列去重不必將他們查詢(xún)出來(lái),最后這個(gè)舉一個(gè)例子就是:
我要查詢(xún)name和age,根據(jù)name和sex去重:
select distinct on (name,sex) name,age from student
補(bǔ)充:PostgreSQL按照某一字段去重,并顯示其他字段信息
以前遇到去重的地方更多的是MySQL去重后統(tǒng)計(jì),比如select count(distinct 字段) from 表,后來(lái)臨時(shí)遇到用Postgresql查詢(xún)?nèi)啃畔ⅲ獙?duì)某個(gè)字段去重,查資料發(fā)現(xiàn)select * from table group by 要去重的字段,在MySQL上可以用,就搬到Postgresql試一下發(fā)現(xiàn)不行,又Google一番,終于找到一種方案:select distinct on(字段) * from 表,就可以了。
如下圖:
對(duì)name字段去重后再查詢(xún)?nèi)孔侄危?/p>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL數(shù)據(jù)庫(kù)事務(wù)出現(xiàn)未知狀態(tài)的處理方法
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫(kù)事務(wù)出現(xiàn)未知狀態(tài)的處理方法,需要的朋友可以參考下2017-07-07使用PostgreSQL為表或視圖創(chuàng)建備注的操作
這篇文章主要介紹了使用PostgreSQL為表或視圖創(chuàng)建備注的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01查看postgresql數(shù)據(jù)庫(kù)用戶(hù)系統(tǒng)權(quán)限、對(duì)象權(quán)限的方法
這篇文章主要介紹了查看postgresql數(shù)據(jù)庫(kù)用戶(hù)系統(tǒng)權(quán)限、對(duì)象權(quán)限的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12navicat無(wú)法連接postgreSQL-11的解決方案
這篇文章主要介紹了navicat無(wú)法連接postgreSQL-11的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12postgreSQL 數(shù)字與字符串類(lèi)型轉(zhuǎn)換操作
這篇文章主要介紹了postgreSQL 數(shù)字與字符串類(lèi)型轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12使用PostgreSQL的JSONB數(shù)據(jù)類(lèi)型進(jìn)行高效查詢(xún)的示例代碼
PostgreSQL的JSONB數(shù)據(jù)類(lèi)型提供了一種靈活的方式來(lái)存儲(chǔ)和查詢(xún)JSON格式的數(shù)據(jù),下面我們將詳細(xì)討論如何使用JSONB數(shù)據(jù)類(lèi)型進(jìn)行高效查詢(xún),并提供相應(yīng)的解決方案和示例代碼,需要的朋友可以參考下2024-04-04關(guān)于PostgreSQL JSONB的匹配和交集問(wèn)題
這篇文章主要介紹了PostgreSQL JSONB的匹配和交集問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09在Linux系統(tǒng)上安裝PostgreSQL數(shù)據(jù)庫(kù)
這篇文章介紹了在Linux系統(tǒng)上安裝PostgreSQL數(shù)據(jù)庫(kù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03