当前位置: 首页 > 面试题库 >

BigQuery SQL排除不在空结果中

杭泉
2023-03-14
问题内容

我在不返回任何值时遇到问题。数据库中有符合此条件的帐户。有些困惑为什么他们不被退回。有什么建议?

select accountid from `table1` 
where not in (select accountid from `table1` where action != "Action8")

问题答案:

不要使用not in。从语义上讲,这是违反直觉的。如果子查询中的 任何 值为NULL,则不返回任何行。

使用not exists代替;

select t1.accountid
from `table1` t1
where not exists (select 1
                  from table1 tt1
                  where tt1.accountid  = t1.accountid and
                        tt1.action <> 'Action8'
                 );

或使用group byhaving

select t1.accountid
from table1 t1
group by t1.accountid
having sum(case when action = 'Action8' then 1 else 0 end) = 0;


 类似资料:
  • 在Elasticsearch中,是否有任何方法可以将与特定查询/筛选器不匹配的嵌套对象从结果源中排除? 例如,假设一个文档在一个嵌套字段中有四个对象。查询所需的筛选器只会导致匹配对象1和3。当我们通过_source获得结果时,我们将拉回整个文档以及对象1、2、3、4。 有可能从结果中排除对象2和4吗?或者是我们必须使用应用程序端逻辑重新迭代并排除的东西?

  • 我对Saxon的XSLT处理器有一个奇怪的问题(最新版本=9.?) 给定这个伪造的XML(不管它是什么): 使用此XSLT: 将实际删除xmlns:xs=”http://www.w3.org/2001/XMLSchema“来自结果XML的声明,因为排除结果前缀=#all”。显然,发生这种情况是因为它在属性值中使用,而不是在元素或属性中使用。 删除排除结果前缀="#all"或手动指定要删除的前缀确实

  • 我能够用所有这些条件编写一个查询对象,并使用MongoTemplate获得结果。但不对结果进行排序。我怎么分类? 这是我到现在为止的密码。 没有添加排序或排序依据的位置。我怎么弄到这个?

  • 我有以下elasticsearch索引结构: 其思想是为每个用户id-message\u id插入带有操作“open”的记录,该用户id-message\u id缺少带有操作“open”的记录。为此,我需要获取所有user\u id-message\u id关联,前提是它们没有动作:“open”。 是否可以创建一个查询,返回不同的user_id-message_id记录不包括user_id-mes

  • 问题内容: 这是我从数据库中获取用户bean的方法。 这将从数据库返回所有用户记录。有趣的是,我不想从数据库获取密码字段。只想在检索时排除该字段。 我有选择 1)在其他领域使用投影。这需要更多代码才能添加到投影列表中。所以放弃了这个想法。 2)使用Sql,我需要编写一个手动查询,这会杀死Hibernate的主题。 是否有可能排除Bean的列值? 问题答案: 假设以下是您的POJO: User.ja

  • 我想从ElasticSearch的结果文档中排除一个字段。我浏览了ElasticSearch.org的这个文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html但当我尝试时,这不起作用。我在SO上看到了同样的问题。有没有办法在Elasticsearch查询中