检测数据集中的变化

Posted

技术标签:

【中文标题】检测数据集中的变化【英文标题】:Detecting variations in a data set 【发布时间】:2017-06-06 09:57:33 【问题描述】:

我有一个具有这种结构的数据集:

合同编号 |月付 |持续时间 |开始日期 |结束日期

一个合同编号可以出现多次,因为该数据集是具有相同结构的不同报告的合并。

现在我想过滤/查找 MonthlyPayment 和/或 Duration 和/或 StartDate 和/或 EndDate 不同的合同编号。

示例(注意合同号不是主键):

ContractNumber | MonthlyPayment | Duration | StartDate  | EndDate
           001 |            500 |       12 | 01.01.2015 | 31.12.2015
           001 |            500 |       12 | 01.01.2015 | 31.12.2015
           001 |            500 |       12 | 01.01.2015 | 31.12.2015
           002 |           1500 |       24 | 01.01.2014 | 31.12.2017
           002 |           1500 |       24 | 01.01.2014 | 31.12.2017
           002 |           1500 |       24 | 01.01.2014 | 31.12.2018

使用此示例数据集,我需要使用特定查询检索 002。 001是一样的,不会改变,但是002会随着时间而改变。

除了编写在 Excel 上运行的 VBA 脚本之外,我对如何使用 SQL 解决这个问题没有任何可靠的想法

我的第一个想法是使用分组的 SQL 方法,其中相同的值被分组在一起,而不是不同的值。我目前正在试验这个。我目前的尝试是:

1.) 有平常的桌子

2.) 使用此结构创建第二个表/查询:

合同编号 | AVG(每月付款) |平均(持续时间)|平均(开始日期)|平均(结束日期)

我使用 Grouping 创建的。

例如

表 1。)

ContractNumber | MonthlyPayment
             1 | 10
             1 | 10
             1 | 20
             2 | 300
             2 | 300
             2 | 300

表 2.)

ContractNumber | AVG(MonthlyPayment)
             1 | 13.3
             2 | 300

3) 现在我想找到不同的合同编号,其中 - 在本例中只有 MonthlyPayment - 不等于平均值​​(应该相同 - 否则我们需要找到一个变体)。

你知道我该如何解决这个问题吗?否则我会开始编写 VBA 或 Python 脚本。我有 CSV 格式的数据集,所以现在我也可以使用 mysql、Power Bi 或 Excel 来完成。

我需要执行一次此分析,因此我不需要完整的方法,因此可以将查询拆分为不同的步骤。

非常感谢!非常感谢。

【问题讨论】:

你在那儿撒了一张很宽的网。 见:Why should I provide an MCVE for what seems to me to be a very simple SQL query? 【参考方案1】:

要查找所有有差异的合同编号,请使用:

select ContractNumber
from
(
select distinct ContractNumber,  MonthlyPayment , Duration , StartDate , EndDate
from MyTable
) x
group by ContractNumber
having count(*) >1

【讨论】:

以上是关于检测数据集中的变化的主要内容,如果未能解决你的问题,请参考以下文章

数据集中的正则表达式单词替换显示结果没有变化

使用python 脚本挑出coco 数据集中的某一类数据

检测是不是存在某些东西,然后自动化过程

Swin Transformer实战实例分割:训练自己的数据集

可以不用人工打标制作目标检测数据集的方法

从COCO数据集和VOC数据集提取特定的类别