cari

Rumah  >  Soal Jawab  >  teks badan

Bandingkan nilai dalam jadual pendua

Saya mempunyai pertanyaan yang menjana jadual rekod pendua daripada set data yang lebih besar, dan saya ingin dapat melakukan analisis lanjut pada data output ini.

Berikut ialah contoh perkara yang boleh anda gunakan.

Saya ingin dapat mengenal pasti, untuk setiap hartanah, keadaan di mana rating tertua hartanah itu berada di bawah 50 tetapi rating terkini kini lebih tinggi daripada 70.

Dalam contoh di bawah, hanya rating yang berkaitan dengan atribut 17 memenuhi syarat ini, jadi baris yang mengandungi Rujukan jygh akan diekstrak.

Rujukan Alamat atribut Tarikh Penilaian
Adev Atribut 12 2022-12-08 70
Pout Atribut 12 2022-12-16 90
mhef Atribut 17 2023-01-02 25
jygh Atribut 17 2023-01-09 70
budak Atribut 22 2022-10-05 85
qepl Atribut 22 2022-10-25 28

Ini ialah analisis khusus tentang perubahan dari semasa ke semasa, jadi hanya perbandingan maks/min penilaian tidak mencukupi.

Edit: Saya mengedit contoh data untuk menunjukkan penurunan nilai rating, yang tidak memenuhi kriteria.

P粉811329034P粉811329034496 hari yang lalu658

membalas semua(2)saya akan balas

  • P粉141925181

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

    Kaedah ini hanya berfungsi jika tarikh tidak diambil kira:

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

    Lihat di sini: https://dbfiddle.uk/6yoRNP74

    balas
    0
  • P粉068510991

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

    Ini akan mempertimbangkan kadar tertua dan terbaharu:

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

    Semak di sini: https://dbfiddle.uk/XzEIlvKc

    balas
    0
  • Batalbalas