PostgreSQL 實(shí)現(xiàn)distinct關(guān)鍵字給單獨(dú)的幾列去重
PostgreSQL去重問題一直困擾著我,distinct和group by遠(yuǎn)不如MySQL用起來隨便,但是如果掌握了規(guī)律,還是和MySQL差不多的
主要介紹的是distinct關(guān)鍵字

select distinct id,name,sex,age from student
假如有一張student表,字段如上圖,我查詢student表中所有信息用distinct去重(上面的SQL語句),pgsql就會根據(jù)所有的字段通過算法取得重復(fù)行的第一行,但是很明顯,ID這個(gè)字段我在設(shè)計(jì)的時(shí)候不會讓它重復(fù),所以相當(dāng)于沒有去重
我想只根據(jù)name和age去重怎么辦?
可以這么寫
select distinct on (name,age) id,name,sex,age from student
這樣就會只根據(jù)name和age去重了
總結(jié)一下:
distinct on (),括號里面的內(nèi)容是要去重的列,括號外面的內(nèi)容是你要查詢展示的列,兩者沒有關(guān)系,你可以根據(jù)某些列去重不必將他們查詢出來,最后這個(gè)舉一個(gè)例子就是:
我要查詢name和age,根據(jù)name和sex去重:
select distinct on (name,sex) name,age from student
補(bǔ)充:PostgreSQL按照某一字段去重,并顯示其他字段信息
以前遇到去重的地方更多的是MySQL去重后統(tǒng)計(jì),比如select count(distinct 字段) from 表,后來臨時(shí)遇到用Postgresql查詢?nèi)啃畔?,但要對某個(gè)字段去重,查資料發(fā)現(xiàn)select * from table group by 要去重的字段,在MySQL上可以用,就搬到Postgresql試一下發(fā)現(xiàn)不行,又Google一番,終于找到一種方案:select distinct on(字段) * from 表,就可以了。
如下圖:

對name字段去重后再查詢?nèi)孔侄危?/p>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL12同步流復(fù)制搭建及主備切換方式
這篇文章主要介紹了PostgreSQL12同步流復(fù)制搭建及主備切換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
詳解如何定位postgreSQL數(shù)據(jù)庫中未被使用過的索引
在生產(chǎn)環(huán)境上,由于不規(guī)范的優(yōu)化措施,數(shù)據(jù)庫中可能存在大量的索引,并且相當(dāng)一部分的索引重未被使用過,今天帶大家如何找出這些索引,本文給大家介紹了定位postgreSQL數(shù)據(jù)庫中未被使用過的索引的方法,需要的朋友可以參考下2024-03-03
postgresql行轉(zhuǎn)列與列轉(zhuǎn)行圖文教程
PostgreSQL是一種開源的關(guān)系型數(shù)據(jù)庫,它提供了多種管理工具來操作數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于postgresql行轉(zhuǎn)列與列轉(zhuǎn)行的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
postgresql查詢每個(gè)月的最后一天日期并對未查到的日期結(jié)果補(bǔ)0(操作示例)
這篇文章主要介紹了postgresql查詢每個(gè)月的最后一天日期,并對未查到的日期結(jié)果補(bǔ)0,pgsql需要使用函數(shù)使用date_trunc()函數(shù)找到指定月第一天,然后對該日期先加一個(gè)月在減一個(gè)月就能得到你傳給的日期的最后一天日期,感興趣的朋友跟隨小編一起看看吧2023-10-10
詳解如何在Ubuntu?18.04上安裝和使用PostgreSQL
關(guān)系數(shù)據(jù)庫管理系統(tǒng)是許多網(wǎng)站和應(yīng)用程序的關(guān)鍵組件,它們提供了一種結(jié)構(gòu)化的方式來存儲、組織和訪問信息,本文演示了如何在?Ubuntu?18.04?VPS?實(shí)例上安裝?Postgres,并提供了基本數(shù)據(jù)庫管理的說明,需要的朋友可以參考下2024-07-07
關(guān)于PostgreSQL JSONB的匹配和交集問題
這篇文章主要介紹了PostgreSQL JSONB的匹配和交集問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
postgresql實(shí)現(xiàn)對已有數(shù)據(jù)表分區(qū)處理的操作詳解
這篇文章主要為大家詳細(xì)介紹了postgresql實(shí)現(xiàn)對已有數(shù)據(jù)表分區(qū)處理的操作的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

