如何比较两组数据的差异性?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较两组数据的差异性?相关的知识,希望对你有一定的参考价值。
参考技术A 比较两组数据之间的差异性,可以运用excel软件去进行比较。具体操作如下:
技巧1:Ctrl+\快速核对数据差异
操作:选择两列数据后,按快快捷键Ctrl+\,这样就可以自动选择两列数据有差异的地方,也就是会自动选中不重复的内容,然后我们将文本填充一下红色就可以很明显的看出来。
技巧2:Ctrl+G快速定位行内容差异
操作:选择数据区域后,按ctrl+g特殊定位,选择行内容差异单元格。这种方法同样可以自动定位到不重复的单元格内容。将文本单独填充红色同样可以看出来。
技巧3:条件格式快速查找重复数据
操作:选择数据区域后,点击开始—条件格式—突出显示重复值数据。这样会自动将两列数据有重复的地方填充为不同颜色,如果没有重复的情况会正常显示。
【拓展资料】
excel,是一款免费的办公软件。 MicrosoftExcel是Microsoft为使用Windows和AppleMacintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为MicrosoftOffice的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。
MicrosoftOffice是一套由微软公司开发的办公软件套装,它可以在MicrosoftWindows、WindowsPhone、Mac系列、ios和android等系统上运行。与其他办公室应用程序一样,它包括联合的服务器和基于互联网的服务。从2007版的Office被称为“OfficeSystem”而不叫“OfficeSuite”,反映出它们包括服务器的事实。 Office最初是一个推广名称,出现于1990年代早期,指一些以前曾单独发售的软件的合集。当时主要的推广重点是:购买合集比单独购买要省很多钱。最初的Office版本包含Word、Excel和PowerPoint。“专业版”包含MicrosoftAccess,MicrosoftOutlook当时不存在。随着时间的改变,Office应用程序逐渐集成,共享特性,例如:拼写和语法检查、OLE数据集成和VBA脚本语言。微软将Office延伸作为一个开发平台,可以借由专用商店下载第三方软件搭配使用。 Office常是制作文档文件的标准,而且有一些其他产品不存在的特性,但是其他产品也有Office缺少的特性。自从Microsoft2007OfficeSystem开始,有一个和以前版本差异很大的用户界面,该界面被称为Ribbon界面,并沿用在MicrosoftOffice2010、MicrosoftOffice2013和MicrosoftOffice2016中。
从同一张表中找出两组数据之间的差异
【中文标题】从同一张表中找出两组数据之间的差异【英文标题】:Finding the difference between two sets of data from the same table 【发布时间】:2012-02-16 09:58:34 【问题描述】:我的数据如下:
run | line | checksum | group
-----------------------------
1 | 3 | 123 | 1
1 | 7 | 123 | 1
1 | 4 | 123 | 2
1 | 5 | 124 | 2
2 | 3 | 123 | 1
2 | 7 | 123 | 1
2 | 4 | 124 | 2
2 | 4 | 124 | 2
我需要一个查询来返回运行 2 中的新条目
run | line | checksum | group
-----------------------------
2 | 4 | 124 | 2
2 | 4 | 124 | 2
我尝试了几件事,但我从未得到令人满意的答案。 在这种情况下,我使用的是 H2,但我当然对有助于我理解这个概念的一般解释感兴趣。
编辑: 好的,这是我在这里的第一篇文章,所以如果我没有足够准确地说明问题,请原谅。
基本上给定两个运行值 (r1, r2, with r2 > r1) 我想确定 row = r2 的哪些行与 row = r1 的任何行有不同的行、校验和或组。
【问题讨论】:
问题没有任何意义...... 你如何确定一个条目是新的? 运行 2 中的新条目是什么意思?我看不到数据戳。 【参考方案1】:select * from yourtable
where run = 2 and checksum = (select max(checksum)
from yourtable)
【讨论】:
【参考方案2】:假设你上次运行的运行值比其他运行值高,下面的 SQL 会有所帮助
select * from table1 t1
where t1.run in
(select max(t2.run) table1 t2)
更新:
上面的 SQL 可能不会给你正确的行,因为你的要求不是很清楚。但总体思路是根据最新的运行参数获取行。
【讨论】:
【参考方案3】:SELECT line, checksum, group
FROM TableX
WHERE run = 2
EXCEPT
SELECT line, checksum, group
FROM TableX
WHERE run = 1
或(结果略有不同):
SELECT *
FROM TableX x
WHERE run = 2
AND NOT EXISTS
( SELECT *
FROM TableX x2
WHERE run = 1
AND x2.line = x.line
AND x2.checksum = x.checksum
AND x2.group = x.group
)
【讨论】:
【参考方案4】:稍微不同的方法:
select min(run) run, line, checksum, group
from mytable
where run in (1,2)
group by line, checksum, group
having count(*)=1 and min(run)=2
顺便说一下,我假设表中的“组”列实际上并未称为组 - 这是 SQL 中的保留字,需要用双引号(或反引号或方括号,具体取决于哪个 RDBMS你正在使用)。
【讨论】:
以上是关于如何比较两组数据的差异性?的主要内容,如果未能解决你的问题,请参考以下文章