Pregsql 多列間橫向去重

2021-10-08 03:56:31 字數 791 閱讀 8446

一、問題

選出5列中非空唯一值大於等於2的行,資料如下,目標行為第1行:

二、解決

1.此問題可看做多列間的橫向去重,主要思路:

(1)通過array()函式將列變成陣列;再通過unnest()把array型別展開成多行;

(2)通過子查詢語法封裝上述資料,進行非空篩選和唯一值統計;

**如下:

select *

from (

select '1' as col1, '2' as col2, ' ' as col3, '1' as col4, '3' as col5

union all

select '2' as col1, ' ' as col2, ' ' as col3, '2' as col4, ' ' as col5

) as a

where (select count(distinct col) from unnest(array[col1, col2, col3, col4, col5]) as tb(col) where col != ' ') >=2

2.結果:

【參考】

1.

pandas根據某列去重

drop duplicates subset comment keep first inplace true 引數 栗子 首先建立乙個dataframe。使用drop duplicates來去除重複值,如果不指明subset,那麼預設根據所有列來考慮,即當某兩行資料所有列都重複時進行去重。subse...

spark2 4 sql 快速列去重(冗餘列檢查)

一直想做乙個勤奮的人,筆耕方田,將自己在從事spark開發四年來積累的奇淫巧技分享出來。在給大家提供參考方案的同時也在總結和優化之前的設計。如果在有幸碰到大牛忍不住提出更好的優化方案能從中受益,也不枉碼了這麼多字。每當設計出乙個很好的計算方案,就會忍不住開啟部落格想分享出來。然後會一直琢磨該以什麼樣...

shell指令碼根據某一列去重

sort t t k3 u filenamesort 排序命令 t 指定分隔符為 t k 指定第三列 u 去重 sort的其他一些選項 r 降序排列 o 把排序結果輸出到原始檔 sort預設是把結果輸出到標準輸出,所以需要用重定向才能將結果寫入檔案,形如 sort filename newfile ...