sql >> Databáze >  >> RDS >> Oracle

Dotaz pro získání nejnovějšího záznamu a (v případě remíz) s vyšší hodnotou nebo procentem podle karty a služby

Nezmínil jste se, zda sloupec type se liší pro danou card,service pár. Za předpokladu, že je to stejné, měli byste být schopni získat výsledek s vnořeným select , včetně type ve vnitřním select a 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
    );

Ukázka




  1. Jak vypočítat medián v PostgreSQL

  2. Zrušit aktuální/aktivní dotaz v Ruby on Rails

  3. Existuje způsob, jak vidět připravený dotaz, jak bude spuštěn v databázi?

  4. Migrace KnexJS s přidruženými počátečními daty