В Oracle
, SQL Server
и PostgreSQL
:
SELECT *
FROM (
SELECT t.*,
COUNT(*) OVER (PARTITION BY id, id2) AS cnt
FROM mytable t
WHERE relationship IN ('Employee', 'Former Employee')
) q
WHERE cnt = 2
Кроссплатформенная версия:
SELECT t.*
FROM (
SELECT id, id2
FROM mytable
WHERE relationship IN ('Employee', 'Former Employee')
GROUP BY
id, id2
HAVING COUNT(*) = 2
) q
JOIN mytable t
ON t.id = q.id
AND t.id2 = q.id2
AND t.relationship IN ('Employee', 'Former Employee')