Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Permintaan untuk mendapatkan catatan terbaru dan (jika seri) dengan nilai atau persentase yang lebih tinggi berdasarkan kartu dan layanan

Anda belum menyebutkan apakah kolom type bervariasi untuk card,service yang diberikan pasangan. Dengan asumsi itu sama, Anda seharusnya bisa mendapatkan hasilnya dengan select . bersarang , termasuk type di dalam select dan group by .

 SELECT card
    ,service
    ,CASE 
        WHEN type = 'v'
            THEN value
        ELSE perc
        END AS max_result
FROM (
    SELECT card
        ,service
        ,type
        ,MAX(date_t) AS Date_t
        ,MAX(value) KEEP (
            DENSE_RANK FIRST ORDER BY date_t DESC
            ) AS value
        ,MAX(percentage) KEEP (
            DENSE_RANK FIRST ORDER BY date_t DESC
            ) AS perc
    FROM yourtable
    GROUP BY card
        ,service
        ,type
    );

Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Apakah ada cara untuk mendapatkan kesalahan sintaks SQL terbaru?

  2. Penanganan pengecualian dalam Prosedur dengan fungsi bersarang di pl/sql

  3. mengekspor database Oracle (membuat file data .sql)

  4. Konfigurasi sumber data Oracle untuk Spring

  5. Masukkan XML dengan lebih dari 4000 karakter ke dalam kolom Oracle XMLTYPE