2016-10-20 156 views
2

我有這張表,我想要一個SELECT來排除標記的行。一般的規律是:刪除基於兩列的重複項

  • 如果有兩個或更多的線,其中控件名稱和名優產品和grouptypes列相等
  • 然後繼續行,其中組名不是「Keine Zuordnung」。
CONTROLNAME BRANDNAME GROUPTYPES GROUPNAME 
ECU   AUDI  VERNETZER   1 
ECU   AUDI  VERNETZER  Keine zuordnung <--THIS 
ECU   AUDI  FUSI   Keine zuordnung <--THIS 
ECU   AUDI  FUSI    2 
ECU2   AUDI  FACHANWENDER Keine zuordnung 
ECU3   AUDI  FACHANWENDER Keine zuordnung 

我能有這個請大家一點幫助? 謝謝!

+0

請將數據作爲格式文本發佈,而不是圖片 – Aleksej

+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking -a-question/285557#285557 –

+0

你想避免選擇「重複」,還是想從表中刪除「重複」? – jarlh

回答

3

這裏有一個方法:

select t.* 
from (select t.*, 
      count(*) over (partition by controlname, brandname, grouptypes) as cnt 
     from t 
    ) t 
where cnt = 1 or groupname <> 'Keine Zuordnung'; 

它採用窗函數來獲得計數,然後一個where爲你的邏輯。

+0

你是男人! –