比較列和重復數據消除

請看下面的一個表格,我想創建一個不同的電話號碼列表,排名組號碼需要采取優先級下降1-4。該示例應導致ID 4,9,10(突出顯示為紅色x)被刪除,因為他們共享重復的電話號碼,但在一個較低的優先級組。

我已經嘗試了很多步驟來實現這一點,并創建了一個代理密鑰,但我希望有人能告訴我如何在一個步驟中實現這一點,以提高效率(并提高我的SQL)。

在SAS9中,我有一個coalescec函數,我可以在其中創建一個新變量并指示優先級-但我知道SQL中沒有這樣的函數。

https://documentation.sas.com/doc/en/vdmmlcdc/8.1/ds2ref/n0crpo0xd76wb3n1poba9wmu1a6q.htm

請參見下面SQL中的模擬數據

    CREATE TABLE MT_TEMP_TEL2 (
  ID INT NOT NULL,
  GROUP INT NOT NULL,
  TEL1 VARCHAR(11),
  TEL2 VARCHAR(11),
  TEL3 VARCHAR(11),
  TEL4 VARCHAR(11)
);

INSERT INTO MT_TEMP_TEL2
VALUES 
  (1,4,"79000000000","","",""),
  (2,1,"12111111111","79999999999","",""),
  (3,1,"","13842222222","",""),
  (4,2,"","","78888888888","12111111111"),
  (5,3,"","73333333333","",""),
  (6,1,"15278888888","","",""),
  (7,2,"","","71111111111",""),
  (8,4,"","13843333333","","72222222222"),
  (9,4,"","73333333333","",""),
  (10,3,"75555555555","","12155555555","13842222222");

這是如上所述的預期結果,我們現在刪除了第4、9和10行

? 最佳回答:

在提到coalesce時,我曾假設目標是將4列壓縮為一個值列表,而預期結果示例現在顯示的情況并非如此。

有幾種方法可以解決這個問題,一種是使用window functions為每個值分配一個序列號;為此,必須將這些值組合到一個列表中,您可以使用union,然后將組合值partitioned作為該列表的結果,并且每個重復項都獲得一個連續的行號。那就是只保留那些值為1的。

with Alltel as (
    select id, [group], tel1 from MT_TEMP_TEL2 union all
    select id, [group], tel2 from MT_TEMP_TEL2 union all
    select id, [group], tel3 from MT_TEMP_TEL2 union all
    select id, [group], tel4 from MT_TEMP_TEL2 
), rn as (
    select id, tel1, Row_Number() over (partition by tel1 order by [group]) n
    from alltel
    where tel1 !=''
)
select * 
from MT_TEMP_TEL2 t
where not exists (select * from rn where rn.id=t.id and rn.n>1)
主站蜘蛛池模板: 无码欧精品亚洲日韩一区| 无码中文字幕人妻在线一区二区三区| 亚洲一区二区三区AV无码| 国产一区二区三区免费观在线 | 亚洲日本精品一区二区| 91在线看片一区国产| 久久久无码精品人妻一区| 鲁大师成人一区二区三区| 国产一区三区二区中文在线| 日韩一区二区久久久久久| 国产成人一区二区三中文| 国产剧情一区二区| 日本免费电影一区二区| 亚洲日韩一区精品射精| 亚洲日本一区二区一本一道| 国产视频一区在线观看| 欧美日本精品一区二区三区 | 国产精品一区二区毛卡片| 男人的天堂亚洲一区二区三区| 亚洲色精品vr一区二区三区| 亚洲福利一区二区精品秒拍| 精品国产免费观看一区| 国产成人高清视频一区二区| 国产香蕉一区二区精品视频| 蜜桃视频一区二区三区| 秋霞无码一区二区| 无码人妻一区二区三区精品视频| 亚洲国产日韩一区高清在线| 国产伦精品一区二区三区免费下载 | 狠狠综合久久AV一区二区三区 | 欧美亚洲精品一区二区| 丰满人妻一区二区三区免费视频| tom影院亚洲国产一区二区| 国产精品 视频一区 二区三区| 中文字幕无线码一区2020青青| 波多野结衣免费一区视频 | ...91久久精品一区二区三区| 精品在线一区二区三区| 国产精品亚洲午夜一区二区三区| 熟女少妇丰满一区二区| 国产一区二区视频免费|