您如何 return table 中的每条记录作为单个串联字符串,其中至少包含不同 table 中每条记录的 4 个值中的 1 个?
How do you return each record in a table as a single concatenated string that contains at least 1 of 4 values for each record in a different table?
我有一个 table 有 92k 条记录,只有一列,包含关于线索的注释。
我还有另一个 table,有 32k 条潜在客户记录,其中有 3 phone 列和一个电子邮件列。
我想查询 92k 条记录以查看它们是否包含任何号码或电子邮件,然后连接所有这些记录并将连接后的字符串设置为 32k table 的注释列的值。
我创建了一个可以使用的电子表格,但它已经处理了几个小时而且只处理了一半。
enter image description here
=IFERROR(ifs(
not(isblank(H30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&H30627&"'",0)),
not(isblank(F30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&F30627&"'",0)),
not(isblank(E30627)),JOIN(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&E30627&"'",0)),
not(isblank(D30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&D30627&"'",0))),"")
我觉得 Bigquery 会节省很多时间,但我是一个 SQL 菜鸟,这会返回一个左外连接错误,但没有 STRING_AGG 和 0 个修改行。
#standardSQL
UPDATE sfdc.workingFin
SET Notes = (SELECT STRING_AGG(string_field_0) from sfdc.tasks where
string_field_0 LIKE (SELECT Email from sfdc.workingFin))
WHERE TRUE
您可以使用相关子查询:
UPDATE sfdc.workingFin wf
SET Notes = (SELECT STRING_AGG(string_field_0)
FROM sfdc.tasks t
WHERE t.string_field_0 LIKE wf.Email
)
WHERE true;
我有一个 table 有 92k 条记录,只有一列,包含关于线索的注释。
我还有另一个 table,有 32k 条潜在客户记录,其中有 3 phone 列和一个电子邮件列。
我想查询 92k 条记录以查看它们是否包含任何号码或电子邮件,然后连接所有这些记录并将连接后的字符串设置为 32k table 的注释列的值。
我创建了一个可以使用的电子表格,但它已经处理了几个小时而且只处理了一半。 enter image description here
=IFERROR(ifs(
not(isblank(H30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&H30627&"'",0)),
not(isblank(F30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&F30627&"'",0)),
not(isblank(E30627)),JOIN(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&E30627&"'",0)),
not(isblank(D30627)),Join(char(10),QUERY(Tasks!A:A,"SELECT A Where A
Contains '"&D30627&"'",0))),"")
我觉得 Bigquery 会节省很多时间,但我是一个 SQL 菜鸟,这会返回一个左外连接错误,但没有 STRING_AGG 和 0 个修改行。
#standardSQL
UPDATE sfdc.workingFin
SET Notes = (SELECT STRING_AGG(string_field_0) from sfdc.tasks where
string_field_0 LIKE (SELECT Email from sfdc.workingFin))
WHERE TRUE
您可以使用相关子查询:
UPDATE sfdc.workingFin wf
SET Notes = (SELECT STRING_AGG(string_field_0)
FROM sfdc.tasks t
WHERE t.string_field_0 LIKE wf.Email
)
WHERE true;