BQ查询,不是exists/joins

BQ query, not exists/joins

在 BigQuery 中我有一个 table。

VM Package
VM1 A
VM2 B
VM3 A
VM4 B
VM1 B
VM2 C
VM3 B
VM4 C

如何获得结果,以便列出所有不同的虚拟机,但 Package 列的值为 null(或为空,或 YesNo ) 如果特定包不存在。 IE。我需要列出所有安装了软件包 A 的虚拟机(不重复),其余的值假设为 null:

VM Package
VM1 A
VM2 null
VM3 A
VM4 null

您应该检查每个 VM 的包 A 的 COUNT 个并在 COUNT 个上应用条件

SELECT VM, IF(COUNTIF(Package = 'A') = 0, NULL, 'A') AS Package
FROM table1
GROUP BY VM

另一种选择

select VM, 
  if('A' in unnest(array_agg(Package)), 'A', null) Package
from your_table
group by VM    

有输出