【问题标题】:Comparing values from table of duplicates比较重复表中的值
【发布时间】:2023-01-10 20:28:40
【问题描述】:

我有一个查询,它从一个更大的数据集中生成一个包含重复记录的表,我希望能够对此输出数据进行进一步分析。

下面是一个示例,说明将使用什么来工作。

我希望能够为各个属性识别该属性的最旧评级低于 50,但最新评级现在大于 70 的实例。

在下面的示例中,只有与属性 17 相关的评级会满足此条件,因此将提取具有引用 jygh 的行。

REFERENCE PROPERTYADDRESS DATE RATING
adef PROPERTY12 2022-12-08 70
pout PROPERTY12 2022-12-16 90
mhef PROPERTY17 2023-01-02 25
jygh PROPERTY17 2023-01-09 70
boyt PROPERTY22 2022-10-05 64
qepl PROPERTY22 2022-10-25 67

这是对随时间变化的专门分析,因此仅对 Rating 进行最大/最小比较是不够的。

【问题讨论】:

  • 每个属性只有 2 个吗?或者样品不具有代表性..
  • 感谢您的 cmet;每个财产可能有两个以上的实例。

标签: mysql mysql-workbench


【解决方案1】:

你能检查一下吗:

select PROPERTYADDRESS
from TABLE1
where RATING <= 50
and PROPERTYADDRESS in (
 select PROPERTYADDRESS
 from TABLE1
 where RATING >= 70
);

在这里查看:https://dbfiddle.uk/6yoRNP74

【讨论】:

  • 交换 50 和 70 实际上给了我我正在寻找的输出 select PROPERTYADDRESS from TABLE1 where RATING >= 70 and PROPERTYADDRESS in ( select PROPERTYADDRESS from TABLE1 where RATING <= 50 );
  • 此解决方案不考虑时间,例如,如果 70 早于 50,结果仍会返回。
  • 同意@P.Salmon 的观点,日期考虑未由此解决
  • 是的,我同意你的看法,鲑鱼,正在处理一个新查询
【解决方案2】:

您是否尝试连接到 python 并找出解决方案?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2021-10-19
    相关资源
    最近更新 更多