Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 cloud platform Bigquery中数组元素的总和_Google Cloud Platform_Google Bigquery - Fatal编程技术网

Google cloud platform Bigquery中数组元素的总和

Google cloud platform Bigquery中数组元素的总和,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,我必须从表2的值中计算正、负+null或空值的总数。我在下面的查询中列出了负值、空值和正值。。但我要整张票。请帮忙 SELECT ARRAY( SELECT count(value), FROM UNNEST(event_data_results) where REGEXP_CONTAINS(name, r'data.result.result') and ((REGEXP_CONTAINS(value, r'^-?\d+$') and SAFE_CAST(value AS INT64) <

我必须从表2的值中计算正、负+null或空值的总数。我在下面的查询中列出了负值、空值和正值。。但我要整张票。请帮忙

SELECT
ARRAY(
SELECT count(value),
FROM UNNEST(event_data_results) where REGEXP_CONTAINS(name, r'data.result.result') and ((REGEXP_CONTAINS(value, r'^-?\d+$') and SAFE_CAST(value AS INT64) <= 0 ))) AS negative_attributes,
ARRAY(
SELECT count(value) as neg_val,
FROM UNNEST(event_data_results) where  value = 'null' or value='' ) AS null_attributes,
ARRAY(
SELECT count(value),
FROM UNNEST(event_data_results) where REGEXP_CONTAINS(name, r'data.result.result') and (REGEXP_CONTAINS(value, r'^-?\d+$') and SAFE_CAST(value AS INT64) > 0 )) AS positive_attributes
FROM `table` where EXISTS (SELECT 1 FROM UNNEST(event_keys) as keys , UNNEST(event_data_results) as results WHERE keys.value = "attribute")
事件键、事件数据结果、数据度量都是可重复的结构


结果应该是正数:4个负数+null:4

下面是BigQuery标准SQL

#standardSQL
SELECT
  COUNTIF(result.value > 0) positive_attributes,
  COUNTIF(result.value < 0) negative_attributes,
  COUNTIF(IFNULL(result.value, 0) = 0) null_or_zero_attributes
FROM `project.dataset.table`,
UNNEST(event_data_results) AS result   
WHERE EXISTS (
  SELECT 1 
  FROM UNNEST(event_keys) AS key
  WHERE key.value = "attribute"
)
您可以在这里添加任何需要的条件


而且,如果result.value是一个字符串-您可以使用SAFE_CASTresult.value作为INT64,因为您已经这样做了。我没有关注您案例的这一方面

输入数据示例和预期结果help@MikhailBerlyant输入表如上所示,因此结果应该是总共有多少个正属性和多少个负属性属性+null或空属性在表中的总数是多少?或每行?表中的总计仅匹配条件作为key.value作为属性@mikhailberlynat当我们在另一条记录中添加条件时,计数和所选行计数正在更改,例如,我需要在其中添加type=attribute的条件,如果我添加SELECT COUNTIFresult.value>0个正属性,COUNTIFresult.value<0负属性,CountIfNullResult.value,0=0 null\u或project.dataset.table中的\u zero\u属性,UnestEvent\u数据\u结果,UnestEvent\u键作为键,其中键。value=属性给出错误的行数和计数事件\u键字段的类型是什么?它是arrayrepeated记录还是simple StructureNullable记录?另外,请更新您的数据样本以支持您刚才在评论中提到的问题,这样我们就可以复制并修复它了,请参见更新的答案-我添加了WHERE子句-我认为这很明显,因为它已经出现在您的初始查询中-空的总值出错了。。除此之外,正值和负值都是正确的