首页 > 解决方案 > GoogleSQL - 选择如果

问题描述

我正在使用数据集 - 结构如下

在此处输入图像描述

我想排除所有 ReviewRound 为“a”的记录,如果它们已经通过了“b”轮审查- 如果一组唯一 ID 具有关联的“b”轮审查,则不应包括“a”轮审查。

有些记录还没有进入“b”轮。我遇到的问题是由于每个唯一 ID 有多个记录。

理想情况下,这可以在 GoogleBigQuery 中完成,如果没有,也可以选择通过 GoogleScripts 进行过滤!

任何建议,将不胜感激!

标签: sqlgoogle-apps-scriptgoogle-bigquery

解决方案


如果一组唯一 ID 具有关联的“b”轮评论,则不应包含“a”轮评论。

如果我正确地遵循了您,您可以将其表示为not具有相关子查询的条件,以确保,如果当前记录具有ReviewRound = 'a',则没有其他记录具有相同的idReviewRound = 'b'

select t.*
from mytable t
where not (
    t.ReviewRound = 'a'
    and exists (
        select 1
        from mytable t1
        and t1.id = t.id and t1.ReviewRound = 'b'
    )
)

推荐阅读