小编典典

根据两列删除重复项

sql

我有这张桌子,我想用SELECT来排除标记的行。一般规则是:

  • 如果有两行或更多行,控件名与品牌名与组类型列相等
  • 然后保留组名不是“ 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

请给我一点帮助吗?谢谢!


阅读 160

收藏
2021-04-28

共1个答案

小编典典

这是一种方法:

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

它使用窗口函数来获取计数,然后使用awhere进行逻辑计算。

2021-04-28