oracle的一个sql问题

ORACLE数据库的

这是一个消费记录表
以下是表结构
create table t_consumption(
t_id char(32) primary key, --这里用UUID生成32位的id值
t_user_id char(32), --用户id
t_game_id char(32), --游戏的id
t_type number(1), --支付方式 0表示话费支付 1表示游币支付
t_create_time varchar2(50) --消费记录的创建日期
);

测试数据如下

    t_id    t_user_id     t_game_id         t_type         t_create_time 
     1             1                  1                    1             2022-04-10 18:25:26
     2             1                  1                    0             2022-04-10 09:26:28
     3             2                  1                    0             2022-03-28 15:24:49
     4             1                  2                    0             2022-05-26 08:45:26

我想获取同一个用户,消费记录,条件是。假如用户多次购买同一个游戏,我只需要取出最新的购买记录。如上数据,假如我是用户1、我想要的数据是
1 1 1 1 2022-04-10 08:25:26
4 1 2 0 2022-05-26 08:45:26

原因是第一行和第二行,它们的用户id和游戏id一致,但由于第一行的t_create_time 字段更新一些,所以取第一行数据

我该如何编写sql。

select t_user_id,t_game_id,max(t_create_time) from t_consumption group by t_user_id,t_game_id

这题要求的是取对应的记录,简单的聚合函数会导致丢失一些列,比如上面的回答就丢了id和type。
如果要求查询的字段完整,应该使用开窗函数

select * from (
select t.*,
row_number() over(partition by t_user_id,t_game_id order by t_create_time desc) rn 
from t_consumption t)
where rn=1