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
(或为空,或 Yes
和 No
) 如果特定包不存在。 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
有输出
在 BigQuery 中我有一个 table。
VM | Package |
---|---|
VM1 | A |
VM2 | B |
VM3 | A |
VM4 | B |
VM1 | B |
VM2 | C |
VM3 | B |
VM4 | C |
如何获得结果,以便列出所有不同的虚拟机,但 Package
列的值为 null
(或为空,或 Yes
和 No
) 如果特定包不存在。 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
有输出