【问题标题】:SQL except a query result除查询结果外的 SQL
【发布时间】:2020-11-11 16:16:33
【问题描述】:

TEST 表共有 315,729,533 条记录

使用以下查询我得到一组结果 -

SELECT count(*)
from test
where Col1 <> '' and Col2='U'

34,270,975

我想要一个可以为我提供另一组结果的查询,它给了我总计 - 最后一个查询结果 (315,729,533-34,270,975 = 281,458,558) 每个 Col & Col2 的记录如下 -

Col1    Count
NULL    638
        282221444
~       48
C       34724501
D       37055
F       11
N       3144


Col2    Count
D       3621131
M       1772356
U       311593354

将不胜感激。

【问题讨论】:

    标签: sql search except


    【解决方案1】:

    你会使用:

    select count(*)
    from test
    where (Col1 = '' or Col1 is null) or
          (Col2 <> 'U' or Col2 is null);
    

    【讨论】:

    • 您好 Gordon,我还从结果集中删除了一些记录。这是为我获取 FORM 和类型 TIF select Col1, Col2, count(*) from Test where Col3 IN ('FORM') AND Col4 = 'TIF' group by Col1, Col2 Col1 Col2 Count D 8824 M 2038 U 713331 的记录的数据的查询我如何在您提供的主查询中使用它,以便我可以从主结果集中删除这些 ~700K 记录,
    • @user1596372 。 . .您在这里的问题是明确要求结果集,而不是删除行。
    • 您好 Gordon,我是说我从您的查询中获得了 281,458,558 条记录的结果。非常感谢。现在我需要从这个查询的结果中删除这 281,458,558 条记录 select Col2, count(*) from where Col3 IN ('FORM') AND Col4 = 'TIF' group by Col2 这个查询的结果给了我三行 [D(8824 条记录)、M(2038 条记录)和 U(713331 条记录)]。所以,基本上我可能需要使用 NOT IN'FORM' 和 'TIF' 但它没有给我正确的结果。希望这次我能提供更多细节。提前致谢!
    • @user1596372 。 . .您还必须考虑 NULL 值。
    猜你喜欢
    • 1970-01-01
    • 2019-01-01
    • 2014-10-15
    • 2016-08-29
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多