在 Salesforce SQL (SOQL) 中查询包含 JOINS 的子查询

Query on subquery containing JOINS in Salesforce SQL (SOQL)

SELECT 
    Email_address, COUNT(Order_date)
FROM 
    (SELECT 
         cust.Email_address, COUNT(ol.Variant_name), ord.Order_date
     FROM 
         DMW_Order_Line_v3 ol
     JOIN 
         DMW_Order_v3 ord ON ol.Unique_transaction_identifier = ord.Unique_transaction_identifier
                          AND ol.Brand_country = ord.Brand_country
     JOIN 
         DMW_Customer_v3 cust ON ord.Email_address = cust.Email_address
                              AND ord.Brand_country = cust.Brand_country
     WHERE 
         ord.Brand_country = 'kiehls-emea_CZ'
         AND cust.Address_country = 'CZ'
         AND cust.Optin_email != 'False'
         AND ol.Line_status = 'SHIPPED'
         AND ol.Variant_name = 'Sample'
     GROUP BY 
         cust.Email_address, ord.Order_date
     HAVING 
         COUNT(ol.Variant_name) >= 4)
GROUP BY 
    Email_address

请原谅我发布了整个代码。但它可能以某种方式有所帮助,谁知道呢。如您所见,它是对包含连接的子查询的查询。我正在使用 Salesforce SQL。当我 运行 代码时,我得到这个错误:

Error saving the query field. Incorrect syntax near the keyword 'GROUP'.

我做错了什么?除了是菜鸟 ;-)

您不需要子查询中的计数列:

SELECT Email_address, COUNT(*)
FROM (SELECT cust.Email_address, ord.Order_date
      FROM DMW_Order_Line_v3 ol JOIN
           DMW_Order_v3 ord
           ON ol.Unique_transaction_identifier = ord.Unique_transaction_identifier AND
              ol.Brand_country = ord.Brand_country JOIN
           DMW_Customer_v3 cust
           ON ord.Email_address = cust.Email_address AND
              ord.Brand_country = cust.Brand_country
      WHERE ord.Brand_country = 'kiehls-emea_CZ' AND
            cust.Address_country = 'CZ' AND
            cust.Optin_email <> 'False' AND
            ol.Line_status = 'SHIPPED' AND
            ol.Variant_name = 'Sample'
      GROUP BY  cust.Email_address, ord.Order_date
      HAVING COUNT(ol.Variant_name) >= 4
     ) e
GROUP BY Email_Address