Maison > Questions et réponses > le corps du texte
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粉1419251812023-09-14 07:27:06
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粉0685109912023-09-14 00:56:13
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