小编典典

按值删除重复的行

sql

我需要执行分组依据,但只能在满足条件的行上执行,否则返回不满足条件的所有行。例如,在下表中,我只希望对“活动”字段中具有“
1”的行进行分组,并返回所有没有的行。

表格(ID,标签,有效):

1, A, 1
2, A, 1
3, B, 0
4, B, 0

将返回:

1, A, 1
3, B, 0
4, B, 0

阅读 190

收藏
2021-04-28

共1个答案

小编典典

这是我能想到的最简单的方法。这是group by中的一个案例。如果满足条件,则按标签分组,否则按主键分组。

SELECT id, label, active
FROM table
GROUP BY
  CASE
    WHEN active = 1 THEN active
    ELSE id END

如果要按活动分组并标记:

SELECT id, label, active
FROM table
GROUP BY
  CASE
    WHEN active = 1 THEN active
    ELSE id END,
  label

编辑:我误解了您要分组的字段。现在已更正。

2021-04-28