【问题标题】:What does "EXCEPT distinct select * " in SQL language mean?SQL语言中的“EXCEPT distinct select *”是什么意思?
【发布时间】:2021-10-08 19:40:28
【问题描述】:

我正在关注 Qwiklabs 上关于 Bigquery 和金融欺诈检测的教程,并在下面遇到了一个我无法理解的查询

CREATE OR REPLACE TABLE finance.fraud_data_model AS
SELECT
*
FROM finance.fraud_data_sample  
EXCEPT distinct select * from finance.fraud_data_test  

我试图了解从 finance.fraud_data_test 表中检索或忽略的内容 或者当涉及到其他两个表时,主要的 Finance.fraud_data_model 是由什么组成的

【问题讨论】:

标签: sql node.js google-bigquery


【解决方案1】:

EXCEPT为集合操作,如UNION和INTERSECT。

它返回第一个表中与第二个表不完全匹配的所有行,并删除所有重复项。因为是使用SELECT *,所以假设两个表的列顺序相同。

【讨论】:

    【解决方案2】:

    SQL EXCEPT 语句用于根据通过两个 SELECT 语句返回的记录的交集来过滤记录。

    从SQL EXCEPT语句左侧的表中筛选出两个表共有的记录,返回剩下的记录。

    SELECT * FROM finance.fraud_data_sample  
    EXCEPT distinct select * from finance.fraud_data_test
    

    在您的情况下,查询返回finance.fraud_data_sample 中的每条记录 从finance.fraud_data_test获得的唯一列表中不存在的对象

    【讨论】:

      【解决方案3】:

      EXCEPT 关键字用作查询的排除过滤器。在这种情况下,它会返回欺诈数据样本中不在欺诈数据测试中的行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 2011-01-14
        • 2011-05-05
        • 2020-10-30
        • 1970-01-01
        • 2020-08-07
        • 2016-12-03
        相关资源
        最近更新 更多