首页  >  问答  >  正文

比较重复表中的值

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

下面是一个可以使用的示例。

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

在下面的示例中,只有与属性 17 相关的评级才符合此条件,因此将提取包含 Reference jygh 的行。

参考 属性地址 日期 评分
阿德夫 属性12 2022-12-08 70
噘嘴 属性12 2022-12-16 90
mhef 属性17 2023-01-02 25
jygh 属性17 2023-01-09 70
男孩 属性22 2022-10-05 85
qepl 属性22 2022-10-25 28

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

编辑:我编辑了数据示例以显示评级值下降,这不符合标准。

P粉811329034P粉811329034401 天前583

全部回复(2)我来回复

  • P粉141925181

    P粉1419251812023-09-14 07:27:06

    只有在不考虑日期的情况下,此方法才有效:

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

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

    回复
    0
  • P粉068510991

    P粉0685109912023-09-14 00:56:13

    这将考虑最旧和最新的费率:

    SELECT mt.PROPERTYADDRESS    
    FROM TABLE1 mt 
    INNER JOIN
        (
            SELECT PROPERTYADDRESS, MIN(Date) AS MinDate
            FROM TABLE1
            GROUP BY PROPERTYADDRESS
        ) t ON mt.PROPERTYADDRESS = t.PROPERTYADDRESS AND mt.DATE = t.MinDate
     WHERE RATING <= 50
     AND mt.PROPERTYADDRESS in (
         SELECT mt.PROPERTYADDRESS 
         FROM TABLE1 mt 
         INNER JOIN
            (
                SELECT PROPERTYADDRESS, MAX(Date) AS MaxDate
                FROM TABLE1
                GROUP BY PROPERTYADDRESS
            ) t ON mt.PROPERTYADDRESS = t.PROPERTYADDRESS AND mt.DATE = t.MaxDate
         WHERE RATING >= 70
    );

    在这里检查:https://dbfiddle.uk/XzEIlvKc

    回复
    0
  • 取消回复