如何在 Impala/Hive 中使用 MINUS 运算符?

How to use MINUS operator in Impala/Hive?

如何在 Impala 中使用 MINUS 运算符查询?

示例:

Table: 游戏

列: Official_start、halftime_start

我想发送 halftime_start - official_start 的查询并将其保存为 firsttimeplayed

我知道 Impala 或 HIVE 中不存在 MINUS,但没有它我怎么能做到呢?

MINUS 在 SQL 的某些版本中是 set-operation。它对集合进行操作,这类似于 UNIONUNION ALL。它从第一个查询中获取第二个查询中不存在的 rows。我相信运算符的 ANSI 标准是 EXCEPT 而不是 MINUS。 Hive/Impala 既不支持 MINUS 也不支持 EXCEPT

- 是减法运算符。这似乎是你想要的;它是加法或+的逆运算。不幸的是,减法在英文中的另一个名称是 "minus",导致您感到困惑。

所以,你只需要做:

select (halftime_start - official_start) as firsttimeplayed
. . .