BigQuery 减去两个表的计数?

Posted

技术标签:

【中文标题】BigQuery 减去两个表的计数?【英文标题】:BigQuery Subtract Counts of Two Tables? 【发布时间】:2014-06-10 00:05:43 【问题描述】:

mysql 中,我可以使用SELECT (SELECT COUNT(*) FROM table1) - (SELECT COUNT(*) FROM table2) 来获取两个表之间的计数差异。当我在 BigQuery 中尝试此操作时,我得到:Subselect not allowed in SELECT clause。如何在 BigQuery 中运行这样的查询?

【问题讨论】:

【参考方案1】:

2019 年更新

#standardSQL 现在支持原始问题语法

SELECT (SELECT COUNT(*) c FROM `publicdata.samples.natality`) 
  - (SELECT COUNT(*) c FROM `publicdata.samples.shakespeare`) 

由于 SELECT 子句中不支持子选择,因此我会为此特定查询使用 CROSS JOIN:

SELECT a.c - b.c
FROM
  (SELECT COUNT(*) c FROM [publicdata:samples.natality]) a
CROSS JOIN
  (SELECT COUNT(*) c FROM [publicdata:samples.shakespeare]) b

【讨论】:

这就是我最终要做的,但它看起来比 MySQL 的方式丑得多。未来是否有计划支持 MySQL 方式? 您的投票就是我们的计划 :) code.google.com/p/google-bigquery/issues/…

以上是关于BigQuery 减去两个表的计数?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 python 中的 bigquery API 将数据集中所有表的计数(*)发送到 csv 文件?

BigQuery SQL:滚动计数在两个条件之间有界

Google BigQuery:如何查询两个不同值之间的共享值计数?

python 使用两个Bruker元素定量输出文件,从另一个中减去一个的计数。

Dataproc + BigQuery 示例 - 有可用的吗?

数组计数减去数组计数