sql >> Databasteknik >  >> RDS >> Oracle

Fråga för att få den senaste posten och (vid oavgjort) med det högre värdet eller procentsatsen per kort och tjänst

Du har inte nämnt om kolumnen type varierar för ett givet card,service par. Förutsatt att det är samma, bör du kunna få resultatet med en kapslad select , inklusive type i den inre select och 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. PostgreSQL BESKRIV TABELL

  2. Hämtar poster som uppfyller ett villkor med GROUP BY

  3. PDO infoga matrisvärden

  4. Kan inte se mySQL COUNT från 3:e tabellen