质检规则-数据连续性

本文介绍了如何通过SQL查询来检查数据连续性,包括楼层间距和时间序列数据,以及针对单表和多表的固定间距检查方法,提供了相应的参数和示例查询语句。

需求

在质量检核过程中,有时候需要校验数据连续性。 比如楼层表,每个楼层的间距固定是3米,或者检验某个报告表,每天都产生了一条报告数据,这是对数据产生时间连续性做检核,上一条数据的报告结束时间,是下一条数据的开始时间

目录

需求

实现

日期连续性

数据连续性-固定间距(2张表)

数据连续性-固定间距(单表)


实现

参数介绍

参数替换
$ { START_COL }开始值字段
$ { END_COL }结束值字段
{ FZ_PARAM }分组字段,可以是组合字段
$ { PX_COL }排序字段
 $ { TABLE }换成实际数据表
$ { DZ_TABLE } 关联表
$ { SJJ_GLTJ } 关联条件
$ { COL }检核的字段


日期连续性


非法行数,总行数,期望行数,缺失行数

SELECT
    a,
    b,
    b + d AS c,
    d 
FROM
    (
    SELECT
        sum( CASE WHEN $ { START_COL } > $ { END_COL } THEN 1 ELSE 0 END ) AS a,
        count( 1 ) AS b,
        sum( CASE WHEN $ { START_COL } != zhy_pre_col THEN 1 ELSE 0 END ) AS d 
    FROM
        (
        SELECT
            *,
            lag( $ { END_COL }, 1, NULL ) over ( PARTITION BY $ { FZ_PARAM } ORDER BY $ { PX_COL } ASC ) AS zhy_pre_col 
        FROM
            $ { TABLE } A 
        ) A 
    )a

数据连续性-固定间距(2张表)


非法行数,总行数,期望行数,缺失行数

SELECT
    a,
    b,
    c,
    c - b + a AS d   
FROM
    (
    SELECT
        count( 1 ) AS a 
    FROM
        (
        SELECT
            A.* $ { FZ_PARAM_DBM },
            lag( $ { COL }, 1, NULL ) over ( PARTITION BY $ { FZ_PARAM } ORDER BY $ { PX_COL } ASC ) AS zhy_pre_col   
        FROM
            $ { TABLE } A  
            INNER JOIN  $ { DZ_TABLE } B ON $ { COMMON_TJ_DZ }   
        AND $ { SJJ_GLTJ }) A 
    WHERE
          (
            A.zhy_pre_col IS   NULL 
        AND A.$ { COL }!= $ { START_COL }) 
        OR   NOT ((
                A.$ { COL }- A.zhy_pre_col 
                )= $ { PARAM } 
            AND A.$ { COL }<= $ { END_COL } 
        AND A.$ { COL } >= $ { START_COL })) a,(
    SELECT
        count( 1 ) AS b 
    FROM
        $ { TABLE }   
        ) b,(
    SELECT
        sum( c ) AS c 
    FROM
        (
        SELECT
            ROUND(
                max(
                $ { COL2 }- $ { COL1 })/ $ { PARAM })+ 1 AS c 
        FROM
              $ { TABLE } A    
            RIGHT JOIN  $ { DZ_TABLE } B ON $ { SJJ_GLTJ } 
        GROUP BY
            $ { FZ_PARAM }   
        ) t 
    ) c

数据连续性-固定间距(单表)


非法行数,总行数,期望行数,缺失行数,下面sql如下

SELECT
    a,
    b,
    b + d AS c,
    d   
FROM
    (
    SELECT
        sum( CASE WHEN $ { START_COL } > $ { END_COL } THEN 1 ELSE 0 END ) AS a,
        count( 1 ) AS b,
        sum( CASE WHEN $ { START_COL } != zhy_pre_col THEN 1 ELSE 0 END ) AS d 
    FROM
        (
        SELECT
            *,
            lag( $ { END_COL }, 1, NULL ) over ( PARTITION BY $ { FZ_PARAM } ORDER BY $ { PX_COL } ASC ) AS zhy_pre_col   
        FROM
             $ { TABLE } A 
        ) A 
    )a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哓炎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值