今天同僚問了我個問題,想對表中字段為’,'分隔組成的資料進行去重,例如一個資料列中存的是“宋小寶,宋小寶,田野,宋曉峰,宋曉峰”,處理後的展示結果為“宋小寶,田野,宋曉峰”。當時時間比較着急,我就用行轉列 再轉行處理了,不知道有沒有更優化的寫法,先記錄下來吧!有簡單方法的同學可以評論一下讓我學習學習,非常感謝!
直接上代碼展示
select sb.ssss,concat_ws(',',collect_set(sb.xxx))
from
(
select a.ssss,b.xxx from
( select 'a' as ssss,'宋小寶,宋小寶,田野,宋曉峰,宋曉峰' as bbb ) a lateral view explode(split(A.bbb ,','))b as xxx)sb
group by sb.ssss
我這晚上回家進行記錄的,當時隻給他拍了個照片發過去了,是以沒法截圖了,你們可以看下最後的展示結果。
結果
臨時通知明天要去加班一天,各位晚安。