我想制作一个SQL查询,其中'exists'子句中的子查询有一个'having'子句。奇怪的是,没有错误,子查询作为独立的查询工作。然而,整个查询与没有'having'子句的查询完全相同。
以下是我的查询大致的样子:
SELECT X
FROM A
WHERE exists (
SELECT X, count(distinct Y)
FROM B
GROUP BY X
HAVING count(distinct Y) > 2)
我正在尝试从A中选择行,其中X在B中具有超过两个Y的出现次数。 但是,结果还包括不存在于子查询中的记录。我在这里做错了什么?