Sie haben nicht erwähnt, ob die Spalte type
variiert je nach card,service
Paar. Angenommen, es ist dasselbe, sollten Sie in der Lage sein, das Ergebnis mit einem verschachtelten select
zu erhalten , einschließlich type
im inneren select
und 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
);