Snowflake cloud data platform ON子句中的聚合函数无效-在雪花SQL中加入数组重叠/数组包含

Snowflake cloud data platform ON子句中的聚合函数无效-在雪花SQL中加入数组重叠/数组包含,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我试图根据两个数组的重叠内容将两个表连接在一起。我已经用Posgresql语法编写了,这很有效,我正在尝试用雪花SQL编写 以下是posgresql中的代码: SELECT COUNT(DISTINCT profiles.id ) AS count_profiles FROM panels LEFT profiles AS profiles ON ARRAY[profiles.code::text] <@ ARRAY[panels.profile_codes] 但我得到了这个错误:

我试图根据两个数组的重叠内容将两个表连接在一起。我已经用Posgresql语法编写了,这很有效,我正在尝试用雪花SQL编写

以下是posgresql中的代码:

SELECT
COUNT(DISTINCT profiles.id ) AS count_profiles
FROM panels 
LEFT profiles  AS profiles ON ARRAY[profiles.code::text] <@ ARRAY[panels.profile_codes]

但我得到了这个错误:

ON子句中的聚合函数无效


提前感谢您的帮助

有什么原因不能直接使用

LEFT OUTER JOIN profiles ON panels.profile_codes = profiles.code
这里涉及的数据类型和基数是什么?

面板中的任何数组。profile\u code
profiles.code

ARRAY\u AGG是导致此处出现问题的聚合函数。它从查询中获取所有代码,并将它们放入单个数组中,而不是每行一个数组。如果profiles.code已经是一个数组,那么您只需要:

SELECT
COUNT(DISTINCT profiles.id ) AS count_profiles
FROM panels
LEFT JOIN profiles ON ARRAY_CONTAINS(panels.profile_codes, profiles.code)
或者,您可能需要使用以下命令:


我需要更多地了解您的数据,以便进一步澄清。

谢谢!这很有效,这是一个很有帮助的解释
SELECT
COUNT(DISTINCT profiles.id ) AS count_profiles
FROM panels
LEFT JOIN profiles ON ARRAY_CONTAINS(panels.profile_codes, profiles.code)
... ON ARRAY_CONTAINS(panels.profile_codes, TO_ARRAY(profiles.code))