当前位置: 首页 > 知识库问答 >
问题:

如果值存在于另一个表sql中的任何行中,则筛选出结果

澹台阳秋
2023-03-14

我试图计算有多少对象出现在表2中而状态不是3或5。 所以如果它的状态是3或5,我想把它排除在计数之外。 我遇到的困难是存在重复值,因为它们可能有不止一个状态。 下文进一步说明。

Table 1

Object_ID 
1
2
3
4
5
Table 2

ID  |  object_id  |  status
1          2           2
2          2           3
3          2           5
4          3           2
5          3           2
6          3           7

最终目标

计算有多少object_ids有一个状态,不包括3或5。 而且可以忽略重复项。 在本例中,总数为1(object_id为3)。 因为我需要找到表2中的所有行,所以实际上将它们合并在一起,假设它们的状态都不是3或5。

Count.   |    object_id
  1      |        3
SELECT Count(distinct(object_id))
FORM table_2
WHERE status <> 3 or status <> 5

如果状态是3或5,我似乎可以将他们分组,但我似乎不能排除他们。

希望,这是有意义的,我已经尝试简化它,所以我没有包含无关的代码。

共有2个答案

充小云
2023-03-14

您可以使用聚合:

select count(*) 
from (
    select object_id
    from table2
    group by object_id
    having max(status in (3, 5)) = 0
) t
夏高朗
2023-03-14

一种没有子查询的方法是:

select count(distinct object_id) - count(distinct case when status in (3, 5) then object_id end)
from table_2;

这将计算不同对象ID的数量,然后减去具有指定状态的不同对象ID的数量。

更典型的情况是,我将使用两个级别的聚合来处理这一问题:

select count(*)
from (select object_id
      from table_2
      group by object_id
      having sum( status in (3, 5) ) = 0
     ) o
 类似资料:
  • 我在Postgres 11中有以下表格: 我想在col3列中搜索col4的每个值。如果col4中的值存在于col3中,我想保留其他行,该行应该被排除在外。 期望输出为: 我无法尝试这方面的任何东西,因为我还无法找到解决方案。

  • 问题内容: 尝试通过一些非常有限的知识和经验来进行SQL查询。尝试了很多我通过搜索发现的内容,但没有得出我想要的结果。 我有四个表: 回复:KITS-[KIT_NO]和[ITEM_NO]都位于ITEMS表中。它们的串联是PK。 我想选择ORDERS,ORDERS.DATE,ORDER_DETAILS.ITEM_NO,ITEMS.DESC 没问题。一些简单的内部联接,我在路上。 困难在于在selec

  • 问题内容: 我有两个表,将值存储为。 我正在填充表,如果其他表中不存在值,则只想在其中一个表中插入值。 就像是: 我怎样才能做到这一点? 问题答案: 您需要使用某种类型的查询。 更新(在澄清之后): 例如,如果相应的行在中尚不存在,则下面是如何在其中插入行: 要用同一查询插入多行,恐怕没有什么比这更好的了 原始答案 例如,这将从满足该子句的所有行中提取,并使用用作的值插入行。它将忽略重复的键错误。

  • 问题内容: 我有一张桌子和一张桌子。向用户显示随机的其他用户数据,并可以决定他喜欢还是不喜欢它。我正在为尚未评级的代理用户选择新的随机用户合作伙伴! 现在,我试图选择表中没有行的所有用户,并将执行用户与已评级用户的关系评级。 该表是一个标准的用户表,在我的列,,,和。 我正在使用Laravel Eloquent,但也可以使用原始sql。 我的尝试: 这是错误的,因为通过此尝试我没有选择任何新用户。

  • 我有一个Python pandas DataFrame: 我想把一些股票的所有行放在一起,比如。这意味着我想要这样的语法: 既然熊猫不接受上述命令,如何达到目标?

  • TLDR;我想通过检查当前结果是否不存在于另一个结果中来筛选出结果 所以目前我有这2个查询 导致 而且 结果(当前只有一个数据) 就我的逻辑而言,这就是我想出的 但结果是空的,我所期待的是 我哪里做错了?

  • 我有几个表,我希望根据另一个表中是否存在两列来筛选其中一个表中的行。每个表上的数据如下 表2:每个用户哈希与用户ID唯一相关联 表3:每个商品名称与商品编号唯一相关联 表4 在我的示例中,ID2和Number2都在表1中,但不在同一行上,所以我想从表4中筛选此行。 我希望问题足够清楚。提前感谢!

  • 这是我的查询,我尝试了这个查询,它是有效的。 我想显示conference_venue的数据。但是我不想显示id_venue与submission_data表相同的数据(与提到id_submission的id_venue相同)。 我试图查询laravel版本,但它是一个空白的白色屏幕,没有错误。 当我在sql查询控制台中尝试此查询时,此查询可以工作,但在使用Laravel查询生成器尝试时失败。