BigQuery 数据库中的 MINUS 功能

use*_*531 7 google-bigquery

我是BigQuery数据库的新手。

与 Oracle 数据库中的MINUS运算符一样,BigQuery 中的功能是什么?我在 BigQuery 中没有找到 MINUS 运算符。

Oracle --> 减去
BigQuery --> ??

Sha*_*ood 6

虽然 BigQuery 中没有 MINUS 函数,但您可以使用 LEFT OUTER JOIN 作为替代方法。

 SELECT name, uid FROM a
 MINUS
 SELECT name, uid FROM b
Run Code Online (Sandbox Code Playgroud)

可以写成:

SELECT a.name, a.uid
FROM a LEFT OUTER JOIN b ON a.name= b.name AND a.uid= b.uid
WHERE b.name IS NULL
Run Code Online (Sandbox Code Playgroud)


Mr.*_*ama 6

BigQuery 没有“MINUS”,但它具有功能相同的“ EXCEPT DISTINCT ”。


小智 5

with whole as
( select 1 as id, 'One' as value
  union all
  select 2 as id, 'Two' as value
  union all
  select 3 as id, 'Three' as value
  ),
  sub_set as
  (
   select 1 as id, 'One' as value
  union all
  select 2 as id, 'Two' as value
  )
  select * from whole
  except distinct
  select * from sub_set
Run Code Online (Sandbox Code Playgroud)

结果是

    3 Three
Run Code Online (Sandbox Code Playgroud)

请参阅: https: //cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax# except

我收到错误,除了不支持所有,DISTINCT 有效。希望这可以帮助。