Comparez les valeurs dans les tables en double
P粉811329034
P粉811329034 2023-09-13 08:52:32
0
2
602

J'ai une requête qui génère une table d'enregistrements en double à partir d'un ensemble de données plus vaste et j'aimerais pouvoir effectuer une analyse plus approfondie sur ces données de sortie.

Voici un exemple de ce que vous pouvez utiliser.

J'aimerais pouvoir identifier, pour chaque propriété, les cas où la note la plus ancienne de la propriété était inférieure à 50 mais la dernière note est désormais supérieure à 70.

Dans l'exemple ci-dessous, seules les notes liées à l'attribut 17 remplissent cette condition, donc la ligne contenant la référence jygh sera extraite.

Référence Adresse d'attribut Date Note
Adev Attribut 12 2022-12-08 70
Boue Attribut 12 2022-12-16 90
mhef Attribut 17 2023-01-02 25
jygh Attribut 17 2023-01-09 70
garçon Attribut 22 2022-10-05 85
qepl Attribut 22 2022-10-25 28

Il s'agit d'une analyse spécialisée du changement au fil du temps, donc une simple comparaison max/min des notes ne suffit pas.

EDIT : j'ai modifié l'exemple de données pour montrer la baisse des valeurs de note, qui ne répond pas aux critères.

P粉811329034
P粉811329034

répondre à tous(2)
P粉141925181

Cette méthode ne fonctionne que si la date n'est pas prise en compte :

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

Découvrez-le ici : https://dbfiddle.uk/6yoRNP74

P粉068510991

Cela prendra en compte les tarifs les plus anciens et les plus récents :

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
);

Vérifiez-le ici : https://dbfiddle.uk/XzEIlvKc

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!