Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 在大查询中是否可以从字符串中删除重复项?_Google Bigquery - Fatal编程技术网

Google bigquery 在大查询中是否可以从字符串中删除重复项?

Google bigquery 在大查询中是否可以从字符串中删除重复项?,google-bigquery,Google Bigquery,因此,我们一直在处理一些数据,目前已经按照 客户原因 客户1 |回答1,回答3,回答2,回答4,回答5,回答1,回答3,回答1 在大查询标准sql中,是否有任何方法可以消除这个字符串中的重复项,并以下面的输出结束 客户原因 客户1 |回答1,回答3,回答2,回答4,回答5 提前感谢假设我正确理解了这个问题,您想要的是: SELECT (SELECT STRING_AGG(DISTINCT s, ', ') FROM UNNEST(SPLIT(Customer1, ', ')) AS s

因此,我们一直在处理一些数据,目前已经按照

客户原因 客户1 |回答1,回答3,回答2,回答4,回答5,回答1,回答3,回答1

在大查询标准sql中,是否有任何方法可以消除这个字符串中的重复项,并以下面的输出结束

客户原因 客户1 |回答1,回答3,回答2,回答4,回答5


提前感谢

假设我正确理解了这个问题,您想要的是:

SELECT
  (SELECT STRING_AGG(DISTINCT s, ', ')
   FROM UNNEST(SPLIT(Customer1, ', ')) AS s) AS Customer1
FROM dataset.table

这将拆分“,”分隔符上的字符串,然后将子字符串聚合为一个新字符串,并使用DISTINCT关键字删除重复项。

假设我正确理解了问题,您需要类似以下内容:

SELECT
  (SELECT STRING_AGG(DISTINCT s, ', ')
   FROM UNNEST(SPLIT(Customer1, ', ')) AS s) AS Customer1
FROM dataset.table

这将在“,”分隔符上拆分字符串,然后将子字符串聚合为一个新字符串,并使用DISTINCT关键字删除重复项。

投票支持Elliott的答案时-希望添加另一个选项BigQuery Standard SQL:

标准SQL 将'project.dataset.table'作为 选择“Customer1”客户,“Answer1,Answer3,Answer2,Answer4,Answer5,Answer1,Answer3,Answer1”答案 选择*替换 数组到字符串数组选择不同的答案 来自UNNESTSPLITanswers,“,”作为答案 ,作为答案 来自“project.dataset.table” 这会产生你需要的结果

世界其他地区客户回答 1客户1回答1,回答3,回答2,回答4,回答5 如果出于某种原因,您希望对这些值进行排序,只需添加一行,如下所示

标准SQL 将'project.dataset.table'作为 选择“Customer1”客户,“Answer1,Answer3,Answer2,Answer4,Answer5,Answer1,Answer3,Answer1”答案 选择*替换 数组到字符串数组选择不同的答案 来自UNNESTSPLITanswers,“,”作为答案 按答案排序 ,作为答案 来自“project.dataset.table” 结果是

世界其他地区客户回答 1客户1回答1,回答2,回答3,回答4,回答5
注意:排序中最可能的需求与您的问题中的特定用例无关-在投票支持Elliott的答案时,它在其他情况下非常方便-希望添加另一个选项BigQuery标准SQL:

标准SQL 将'project.dataset.table'作为 选择“Customer1”客户,“Answer1,Answer3,Answer2,Answer4,Answer5,Answer1,Answer3,Answer1”答案 选择*替换 数组到字符串数组选择不同的答案 来自UNNESTSPLITanswers,“,”作为答案 ,作为答案 来自“project.dataset.table” 这会产生你需要的结果

世界其他地区客户回答 1客户1回答1,回答3,回答2,回答4,回答5 如果出于某种原因,您希望对这些值进行排序,只需添加一行,如下所示

标准SQL 将'project.dataset.table'作为 选择“Customer1”客户,“Answer1,Answer3,Answer2,Answer4,Answer5,Answer1,Answer3,Answer1”答案 选择*替换 数组到字符串数组选择不同的答案 来自UNNESTSPLITanswers,“,”作为答案 按答案排序 ,作为答案 来自“project.dataset.table” 结果是

世界其他地区客户回答 1客户1回答1,回答2,回答3,回答4,回答5 注意:排序中最可能的需求与您的问题中的特定用例无关-它可以在其他情况下很方便