美文网首页数析
SQL排除指定多个条件的记录行

SQL排除指定多个条件的记录行

作者: PowerBI入门到实践 | 来源:发表于2020-06-11 20:24 被阅读0次

    在最近的一次数据分析中,我通过一段对两个表的链接查询,返回我需要的数据。在使用过程中,我发现了其中包含了一些脏数据,需要通过一些方法清除它们。我定位了这些数据的特点,然后把他们加入到查询的条件中,希望通过查询脚本的方式,把满足这些条件的记录排除。

    这些错误的数据都有以下的特点:

    • rate_type = Standard
    • client_net_cleared = 0
    • program is blank (not Null)

    我开始的时候使用的是以下这样的方式,然后添加到where的部分,但是这样并不能满足需求:

    SELECT *
    , CASE WHEN tad.rate_type = 'Standard'
        AND tad.client_net_cleared = '0'
        AND program= '' THEN 1
        ELSE '0'
        END AS noise
    
    FROM tableau.km_tv_ad_data_import tad
    JOIN tableau.km_tv_ad_report ga
        ON ga.session_timestamp >= tad.timestamp - INTERVAL '4 minute'
        AND ga.session_timestamp <= tad.timestamp + INTERVAL '5 minute'
        AND ga.session_timestamp != tad.timestamp
    
    WHERE tad.timestamp >= '2016-09-01'
    AND (tad.rate_type != 'Standard'
        AND tad.client_net_cleared != '0'
        AND tad.program != '')
    
    GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
    
     timestamp           | rate_type | program         | client_net_cleared | noise
    ---------------------|-----------|-----------------|--------------------|-------
     2016-11-01 18:00:00 | Standard  | Diving          |                 50 | 0
     2016-12-01 21:00:00 | Holiday   | Classic Albums  |                100 | 0
     2016-11-01 09:00:00 | FireSale  | Panorama        |                  0 | 0
     2016-10-01 12:00:00 | Standard  |                 |                  0 | 1
     2016-12-01 15:00:00 | Holiday   | MythBusters     |                100 | 0
     2016-10-01 13:00:00 | FireSale  | House           |                200 | 0
    

    我最后需要的是:
    排除同时满足下面所有条件的记录:
    rate_type = Standard, client_net_cleared = 0, program is blank (not Null).

    后来修正后,正确的方式是:

    AND NOT (tad.rate_type = 'Standard'
            AND tad.client_net_cleared = '0'
            AND tad.program = '')
    

    这样就实现了需要的目标,实际上这个问题的重点还是在SQL的基础,真正理解AND和OR的计算逻辑。

    完毕,希望能帮到你。喜欢请关注、收藏。

    相关文章

      网友评论

        本文标题:SQL排除指定多个条件的记录行

        本文链接:https://www.haomeiwen.com/subject/mmcitktx.html