gpt4 book ai didi

mysql - 检测数据集中的变化

转载 作者:行者123 更新时间:2023-11-29 10:46:55 25 4
gpt4 key购买 nike

我有一个具有以下结构的数据集:

契约(Contract)号 |每月付款 |持续时间 |开始日期 |结束日期

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

现在我想过滤/查找其中 MonthlyPayment 和/或 Duration 和/或 StartDate 和/或 EndDate 不同的契约(Contract)号。

示例(请注意,契约(Contract)号不是主键):

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.) 使用以下结构创建第二个表/查询:

契约(Contract)号 | AVG(每月付款) |平均(持续时间)|平均(开始日期)|平均值(结束日期)

我使用分组创建的。

EG

表 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)现在我想找到不同的契约(Contract)号,其中 - 在本例中只有 MonthlyPayment - 不等于平均值​​(它应该是相同的 - 否则我们有一个我需要找到的变体)。

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

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

非常感谢!非常感谢。

最佳答案

要查找所有有差异的契约(Contract)号,请使用:

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

关于mysql - 检测数据集中的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com