Google bigquery 按分组时结果的总和不一致

Google bigquery 按分组时结果的总和不一致,google-bigquery,Google Bigquery,我运行以下查询以查找表中的重复数 SELECT sum(duplicates) FROM (SELECT COUNT (*) as duplicates FROM db.4585_20150727, db.5691_20150727, db.9884263_20150727, db.9884623_20150727 WHERE (A LIKE "1" OR A LIKE "2" OR A LIKE "3") AND B NOT LIKE "XYZ" AN

我运行以下查询以查找表中的重复数

SELECT
sum(duplicates)
FROM
  (SELECT
  COUNT (*) as duplicates
  FROM
  db.4585_20150727,
  db.5691_20150727,
  db.9884263_20150727,
  db.9884623_20150727 
  WHERE
  (A LIKE "1" OR A LIKE "2" OR A LIKE "3") AND
  B NOT LIKE "XYZ" AND ID IS NOT null 
GROUP EACH BY
ID
having
count (*) >1)
我想看看复制的是什么类型的装置,在哪里。字段_1为装置类型,字段_2为装置位置。单个单元类型可以位于多个位置,并且一个位置可以具有多个单元类型。我不想只看到复制品的总数量,而是想看到每种单元类型、单元位置的复制品数量

当我运行以下命令时,我的结果数量与第一个查询的输出不一致。我几乎可以肯定的是,这种不一致性是由集团公司造成的。分组依据是否可能正在筛选出某些行?重复项的总和不应该与第一个查询相同吗?下面的查询结果小于上面的重复项初始和查询结果。唯一的区别是,我在选择和分组BY中包括字段_1和字段_2

SELECT
field_1,
field_2,
sum(duplicates)
FROM
  (SELECT
  field_1,
  field_2,
  COUNT (*) as duplicates
  FROM
  db.4585_20150727,
  db.5691_20150727,
  db.9884263_20150727,
  db.9884623_20150727 
  WHERE
  (A LIKE "1" OR A LIKE "2" OR A LIKE "3") AND
  B NOT LIKE "XYZ" AND ID IS NOT null 
GROUP EACH BY
field_1,
field_2,
ID
having
count (*) >1)
group each by
field_1,
field_2
请让我知道我需要如何调整第二个查询以与我的初始查询结果保持一致


谢谢

我猜:您正在运行“HAVING COUNT()>1”。当第一个查询运行时,它会过滤一些元素。当第二个查询运行时,由于它有更多的限制性组,COUNT()=1 bucket中会有更多的行,因此它们会被过滤

SELECT SUM(duplicates)
FROM (
  SELECT COUNT(*) as duplicates
  FROM [publicdata:samples.shakespeare] 
  GROUP EACH BY word
  HAVING COUNT(*)>1
)

149130
vs


不能复制。需要更多信息。请编辑帖子。如果这足够清楚,请告诉我,谢谢!
SELECT SUM(duplicates)
FROM (
  SELECT COUNT(*) as duplicates
  FROM [publicdata:samples.shakespeare] 
  GROUP EACH BY word, word_count
  HAVING COUNT(*)>1
)

130619