带有使用 GROUP BY 和 HAVING 的子查询的 SOQL 查询引发未知错误

问题描述

我正在尝试从自定义对象 (SB_User__c) 中查询记录列表,其中 Email__c 字段中的值不是唯一的。

以下查询按预期捕获整个表:

SELECT Id,Name,Email__c,External_Id__c
FROM SB_User__c
ORDER BY Email__c,Name

我的子查询返回一个不唯一的 Email__c 值列表:

SELECT Email__c
FROM SB_User__c
GROUP BY Email__c
HAVING COUNT(Id) > 1

但是当这些查询组合在一起时,我收到一个未知错误

SELECT Id,External_Id__c
FROM SB_User__c
WHERE Email__c IN (
    SELECT Email__c FROM SB_User__c
    GROUP BY Email__c
    HAVING COUNT(Id) > 1)
ORDER BY Email__c,Name

有没有办法在不涉及顶点的情况下完成我想要做的事情?

解决方法

我认为问题可能出在 have 子句中,我已经在线使用此编辑器运行了类似的查询:

online editor for sql queries

SELECT * FROM Customers
WHERE CustomerID IN (
SELECT CustomerID FROM Customers
GROUP BY CustomerID
HAVING CustomerID > 50)
ORDER BY Country ASC,CustomerName DESC;

而且这个查询运行正常,你可以检查ifying 子句。