Bạn chưa đề cập đến việc cột type
thay đổi cho một card,service
nhất định đôi. Giả sử nó giống nhau, bạn sẽ có thể nhận được kết quả bằng select
lồng nhau , bao gồm type
trong select
bên trong và nhóm 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
);