sql >> データベース >  >> RDS >> Oracle

カードとサービスごとに、最新のレコードと(同点の場合)より高い値またはパーセンテージを取得するためにクエリを実行します

    列のtypeかどうかについては言及していません 特定のcard,serviceによって異なります ペア。同じであると仮定すると、ネストされたselectで結果を取得できるはずです。 、typeを含む 内側のselect および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
        );
    

    デモ




    1. PHP PDO MySQLとそれは実際にMySQLトランザクションをどのように処理しますか?

    2. postgreSQLフィボナッチ数列-クエリに結果データの宛先がありません

    3. PostgreSQLの関数を使用して複数の行を挿入する方法

    4. PHPSUM関数