我有一個查詢,它從較大的資料集中產生重複記錄表,我希望能夠對此輸出資料進行進一步分析。
下面是一個可以使用的範例。
我希望能夠針對各個屬性識別該屬性的最舊評級低於 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粉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
#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
#