आपने उल्लेख नहीं किया है कि क्या कॉलम 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
);