当前位置: 首页 > news >正文

BI-SQL丨两表差异比较

BOSS:哎,白茶,我们最近新上了一个系统,后续有一些数据要进行源切换,这个能整么?
白茶:没问题,可以整!
BOSS:哦,对了,差点忘记告诉你了,新系统没有进行过数据校验,所以切换之前,需要你处理一下,这个能整不?
白茶:(¥#!&*%!)能!

数仓在运维过程中,难免会遇到数据源切换,或者是方案调整的情况。
要知道,对于数仓来说,数据的准确性是非常重要的,也是衡量数仓是否可用的标准之一。
那么当某些表数据源发生变动时,我们该如何快速进行数据差异比较呢?
面对这种情况,我们可以使用EXCEPT和INTERSECT来解决这一问题。

概念介绍

EXCEPT是用来比较两个表之间的数据差,返回的结果集为在第一个表中存在且在第二个表中不存在的数据;INTERSECT是用来获取两个表之间的数据交集,返回的结果集为两个表中相同的部分。

使用条件
1.被比较的两个表列数和列名顺序需要一致;
2.被比较的两个表数据类型可以不一致,但是需要兼容;
3.被比较的两个表中不能存在不可被比较的数据类型。

使用实例

案例数据:
利用如下SQL语句,在数仓中构建案例数据。

CREATE TABLE [dbo].[BaiCha1]([LB_Name] [nvarchar](20) NULL,[LB_Value] [nvarchar](255) NULL
)
GO
;INSERT INTO[dbo].[BaiCha1]
VALUES
('A', '1')
GO
;CREATE TABLE [dbo].[BaiCha2]([LB_Name] [nvarchar](20) NULL,[LB_Value] [nvarchar](255) NULL
)
GO
;INSERT INTO[dbo].[BaiCha2]
VALUES
('A', '1'),('B', '2')
GO
;CREATE TABLE [dbo].[BaiCha3]([LB_Name] [nvarchar](20) NULL,[LB_Value] [nvarchar](255) NULL
)
GO
;INSERT INTO[dbo].[BaiCha3]
VALUES
('A', '1'),('B', '2')
GO
;

结果如下:

例子1:
利用EXCEPT比较3张表之间的差异。

SELECT*
FROMBaiCha2EXCEPT
SELECT*
FROMBaiCha1
GO
;SELECT*
FROMBaiCha2EXCEPT
SELECT*
FROMBaiCha3
GO
;

结果如下:

例子2:
利用INTERSECT比较3张表之间的差异。

SELECT*
FROMBaiCha2
INTERSECT
SELECT*
FROMBaiCha1
GO
;SELECT*
FROMBaiCha2
INTERSECT
SELECT*
FROMBaiCha3
GO
;

结果如下:

例子3:
在实际应用中,我们也可以换一种写法,直接输出结果计数,这种方法叫做减法归零。这里我们使用BaiCha1和BaiCha2进行举例。

SELECT  COUNT(*) AS T1_NOT_T2_Count
FROM    ( SELECT    *FROM      [dbo].[BaiCha1]EXCEPTSELECT    *FROM      [dbo].[BaiCha2]) AS T;SELECT  COUNT(*) AS T2_NOT_T1_Count
FROM    ( SELECT    *FROM      [dbo].[BaiCha2]EXCEPTSELECT    *FROM      [dbo].[BaiCha1]) AS T;

结果如下:

相关文章:

BI-SQL丨两表差异比较

BOSS:哎,白茶,我们最近新上了一个系统,后续有一些数据要进行源切换,这个能整么? 白茶:没问题,可以整! BOSS:哦,对了,差点忘记告诉你了…...

ZooKeeper 选举的过半机制防止脑裂

结论: Zookeeper采用过半选举机制,防止了脑裂。 原因: 如果有5台节点,leader联系不上了,其他4个节点由于超过半数,所以又选出了一个leader,当失联的leader恢复网络时,发现集群中已…...

【图论】树上差分(边差分)

一.简介 其实点差分和边差分区别不大。 点差分中,d数组存储的是树上的节点 边差分中,d数组存储的是当前节点到父节点的那条边的差分值。 指定注意的是:边差分中因为根连的父节点是虚点,所以遍历结果时应当忽略! 二…...

RT1052的定时器

文章目录 1 通用定时器1.1 定时器框图1.2 实现周期性中断 2 相关寄存器3 定时器配置3.1 时钟使能3.2 初始化GPT1定时器3.2.1 base3.2.2 initConfig3.2.2.1 clockSorce3.2.2.2 divider3.2.2.3 enablexxxxx 3.3 设置 GPT1 比较值3.3.1 base3.3.2 channel3.3.3 value 3.4 设置 GPT…...

opencv python 训练自己的分类器

源码下载 一、分类器制作 1.样本准备 收集好你所需的正样本,和负样本,分别保存在不同文件夹 在pycharm新建项目,项目结构如下:has_mask文件夹放置正样本,no_mask文件夹放置负样本 安装opencv,把opencv包…...

详解Mybatis之分页插件【PageHelper】

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 文章目录 一. 什么是分页?二. 为什么使用分页?三. 如何设计一个Page类(分…...

【基于矢量射线的衍射积分 (VRBDI)】基于矢量射线的衍射积分 (VRBDI) 和仿真工具(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

基于jackson对bean的序列号和反序列化

通过观察控制台输出的SQL发现页面传递过来的员工id的值和数据库中的id值不一致,这是怎么回事呢? 分页查询时服务端响应给页面的数据中id的值为19位数字,类型为long 页面中js处理long型数字只能精确到前16位,所以最终通过ajax请求提交给服务…...

排队理论简介

排队理论简介 1. 理论背景2. 研究的数学方法3. 拒绝型排队系统与等候型排队系统4. 拒绝型排队系统 本文参考文献为Вентцель Е. С.的《Исследование операций》。 1. 理论背景 排队理论又称大众服务理论,顾名思义指的是在有限的服务条…...

极速查找(3)-算法分析

篇前小言 本篇文章是对查找(2)的续讲二叉排序树 二叉排序树(Binary Search Tree,BST),又称为二叉查找树,是一种特殊的二叉树。性质: 左子树的节点值小于根节点的值,右…...

http 常见的响应状态码 ?

100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理…...

机器学习笔记之优化算法(四)线搜索方法(步长角度;非精确搜索)

机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索] 引言回顾:精确搜索步长及其弊端非精确搜索近似求解最优步长的条件反例论述 引言 上一节介绍了从精确搜索的步长角度观察了线搜索方法,本节将从非精确搜索的步长角度重新观察线搜…...

Redis 哨兵 (sentinel)

是什么 官网理论:https://redis.io/docs/management/sentinel/ 吹哨人巡查监控后台 master 主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。 作用:无人值守运维 哨兵的作用: 1…...

统计2021年10月每个退货率不大于0.5的商品各项指标

统计2021年10月每个退货率不大于0.5的商品各项指标_牛客题霸_牛客网s mysql(ifnull): select product_id, format(ifnull(sum(if_click)/nullif(count(*),0),0),3) as ctr, format(ifnull(sum(if_cart)/nullif(sum(if_click),0),0),3) as c…...

【小波尺度谱】从分段离散小波变换计算小波尺度谱研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

UE5、CesiumForUnreal加载无高度地形

文章目录 1.实现目标2.实现过程3.参考资料1.实现目标 在UE5中,CesiumForUnreal插件默认的地形都是带高度的,这里加载没有高度的地形,即大地高程为0,GIF动图如下: 2.实现过程 参考官方的教程,下载无高度的DEM,再切片加载到UE中。 (1)下载无高度地形DEM0。 在官方帖子…...

关于Spring中的@Configuration中的proxyBeanMethods属性

Configuration的proxyBeanMethods属性 在Configuration注解中,有两个属性: value配置Bean名称proxyBeanMethos,默认是true 这个proxyBeanMethods的默认属性是true。 直接说:当Configuration注解的proxyBeanMeathods属性是true…...

dp1,ACM暑期培训

D - 摆花 P1077 [NOIP2012 普及组] 摆花 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) Description 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花&…...

大厂程序员的水平比非大厂高很多嘛?

最近一个月,筛选了一百多份简历,前前后后面试了二三十人,基本上都是有大厂经历的人。同时,也录用了几个有大厂经历的。但整体而言,打破了对大厂出来的都是优质人才的幻觉。看到的实际情况与想象中的落差还是比较大的。…...

Java开发工具MyEclipse发布v2023.1.2,今年第二个修复版!

MyEclipse一次性提供了巨量的Eclipse插件库,无需学习任何新的开发语言和工具,便可在一体化的IDE下进行Java EE、Web和PhoneGap移动应用的开发;强大的智能代码补齐功能,让企业开发化繁为简。 MyEclipse v2023.1.2官方正式版下载 …...

基于正交滤波器组的语音DPCM编解码算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................................g0zeros(1,lenH); g1zeros(1,l…...

VS2022和QT混合编程打包发布程序

1.在开始菜单输入 CMD 找到 Qt5.15.2(MSVC 64-bit) 2.输入windeployqt exe所在路径 3.运行完毕后,双击打开exe文件,可能会报错,缺少相关的dll,找到缺少的dll拷贝到运行文件夹下即可。...

Filebeat学习笔记

Filebeat基本概念 简介 Filebeat是一种轻量级日志采集器,内置有多种模块(auditd、Apache、Nginx、System、MySQL等),针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。之所以能实现这一点&#…...

【实战】 九、深入React 状态管理与Redux机制(一) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(十六)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

第九十五回 如何使用dio的转换器

文章目录 概念介绍使用方法使用默认的转换器自定义转换器 示例代码经验分享 我们在上一章回中介绍了"如何打造一个网络框架"相关的内容,本章回中将介绍 如何使用dio的转换器.闲话休提,让我们一起Talk Flutter吧。 概念介绍 转换器主要用来转…...

Python深度学习“四大名著”之一【赠书活动|第二期《Python机器学习:基于PyTorch和Scikit-Learn》】

近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来,机器学习和深度学习迅猛发展,取…...

RAID相关知识

简介 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑磁盘,从而提高硬盘的读写性能和数据安全性。 数据组织形式 分块&#x…...

DataStructure--Basic

程序设计数据结构算法 只谈数据结构不谈算法就跟去话剧院看梁山伯与祝英台结果只有梁山伯在演,祝英台生病了没来一样。 本文的所有内容都出自《大话数据结构》这本书中的代码实现部分,建议看书,书中比我本文写的全。 数据结构,直…...

Intellij IDEA 双击启动报错ClassNotFoundException: com.licel.b.z@

项目场景: 新从官网下载了ideaIU-2023.2.win.zip ,安装后双击启动报错, 无法运行idea, 提示信息如下 问题描述 Internal error. Please refer to https://jb.gg/ide/critical-startup-errorsjava.lang.ExceptionInInitializerErrorat java…...

使用 Logstash 及 enrich processor 实现数据丰富自动化

在我之前的文章: Elasticsearch:enrich processor (7.5发行版新功能) Elasticsearch:使用 Elasticsearch ingest pipeline 丰富数据 通过上面的两篇文章的介绍,我们应该充分掌握了如何使用 enrich proce…...

郑州做网站需要多少钱/武汉建站优化厂家

今天在刷leetcode的时候,对于179题返回最大数,用python2中的sorted(cmp)会很方便,但是在python3中这一参数被取消了,经过查找,发现应该借助functools中的cmp_to_key函数,直接贴代码import functoolsdef cmp…...

化妆品网站html模板/百度一下你就知道手机版官网

最近参加超越杯发生了一段小插曲,主办方要求提交白底的团队介绍VCR,然而之前没有注意到这点,就找了个风景优美的地方拍摄,直到截止前才发现大事不妙。此时自然而然地就想到抠图了!然而这次的视频背景花里胡哨。我询问了各路图像大…...

张店网站建设方案/seo搜索推广

IPHostname 172.16.100.251nginx01代理 apiverser172.16.100.252nginx02代理 apiverser172.16.100.254apiserver01.xxx.comVIP地址,主要用于nginx高可用确保nginx中途不会中途172.16.100.51k8s-etcd-01etcd集群节点,默认关于ETCD所有操作均在此节点上操作172.16.100.52k8s-etcd…...

大型网站建设完全教程/搜索引擎营销的成功案例

安装完成Zabbix之后,我们就可以安装Maxserver来实现数据大屏展示了。完成Maxserver安装之后,Zabbix里面的主机将自动同步到Maxserver,将会看到如下的面板。全部主机的运行状态大屏每台主机的详细运行大屏pidstat 概述pidstat是sysstat工具的一…...

三网合一网站建设是指什么/国外友链买卖平台

作者:Tiny熊来源:区块链兄弟原文链接:http://t.cn/ELoD2h2本文约1700字,阅读(观看)需要10分钟著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这篇文章对fabric的网络环境启动过程进行讲解,也就…...

普通网站建设费用/品牌策划设计

jquery.autocomplete是一个让人又爱又恨的东东,一直用得不错,可是用得越是深入就越是郁闷,这不,之前发现并解决了两个问题,这次又有问题找上我了。之前的两个问题分别是:《为jquery.AutoComplete添加触发事…...