如果其他行具有公共屬性,則設定標誌

假設我有這些資料:

表專案

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