sql >> Database >  >> RDS >> Oracle

Vraag om het meest recente record en (in geval van gelijkspel) met de hogere waarde of percentage per kaart en service

U heeft niet vermeld of de kolom type varieert voor een bepaalde card,service paar. Ervan uitgaande dat het hetzelfde is, zou je het resultaat moeten kunnen krijgen met een geneste select , inclusief type in de binnenste select en 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. BIGINT NIET-ONDERTEKENDE WAARDE IS buiten bereik Mijn SQL

  2. php mysqli_connect:authenticatiemethode onbekend bij de client [caching_sha2_password]

  3. Hoe de R12.2-omgeving te klonen

  4. Een inleiding tot zoeken in volledige tekst in MariaDB