Пропустить идентификаторы, которые вообще не в C2:
SELECT d.id, d.c1, g.gcount
FROM
(
SELECT c2 as gc2, COUNT(*) as gcount
FROM @data
GROUP BY c2
) g
INNER JOIN @data d ON d.id = g.gc2 AND gcount != 2
ВЫХОД:
id | c1 | gcount
3 | c | 1
4 | d | 1
5 | e | 1
ВКЛЮЧИТЬ IDЧТО НЕ В С2:
SELECT d.id, d.c1, ISNULL(g.gcount, 0) as gcount
FROM
(
SELECT c2 as gc2, COUNT(*) as gcount
FROM @data
GROUP BY c2
) g
RIGHT JOIN @data d ON d.id = g.gc2
WHERE gcount IS NULL OR g.gcount != 2
ВЫХОД:
id c1 gcount
3 c 1
4 d 1
5 e 1
6 f 0
7 g 0
8 h 0