如果其他行具有公共属性,则设置标志

假设我有这些数据:

表项目

ID 名称 标签
1 unique_tag
2 FOO 简单
42 BAR 简单
3 BAZ 你好
51 QUUX 世界

我想得到所有这些行,并知道其他行是否使用了标记

SELECT id, name, tag, COUNT(*) OVER (PARTITION BY tag) > 1 AS flag FROM items

结果将是:

ID 名称 标签 标志
1 unique_tag
2 FOO 简单 真正
42 BAR 简单 真正
3 BAZ 你好
51 QUUX 世界

如果你的数据库没有 OVER 和 PARTITION,你可以使用它来产生相同的结果:

SELECT id, name, tag, (SELECT COUNT(tag) FROM items B WHERE tag = A.tag) > 1 AS flag FROM items A