mysql 比较重复项表中的值

6l7fqoea  于 2023-01-12  发布在  Mysql
关注(0)|答案(2)|浏览(103)

我有一个查询,它从一个较大的数据集中生成一个重复记录表,我希望能够对此输出数据做进一步的分析。
下面是一个示例,说明将生成什么样的工作。
我希望能够为单个属性标识该属性的最早评级小于50,但最新评级现在大于70的示例。
在下面的示例中,只有与属性17相关的评级符合此条件,因此将提取具有Reference jygh的行。
| 参考文献|物业地址|日期|评级|
| - ------|- ------|- ------|- ------|
| 阿德夫|物业12|二〇二二年十二月八日|七十|
| 噘嘴|物业12|二〇二二年十二月十六日|九十|
| 姆赫夫|物业17|2023年1月2日|二十五|
| 于格|物业17|2023年1月9日|七十|
| 博伊特|物业22|二〇二二年十月五日|八十五|
| 盖普勒|物业22|二〇二二年十月二十五日|二十八|
这是对随时间变化的专门分析,因此仅比较评级的最大值/最小值是不够的。
编辑:我已经编辑了数据示例,以显示不符合标准的评级值下降。

mwecs4sa

mwecs4sa1#

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

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

kyxcudwk

kyxcudwk2#

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

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

在此查看:https://dbfiddle.uk/6yoRNP74

相关问题