doemb 2022-04-11 10:08 采纳率: 100%
浏览 31
已结题

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。

  • 写回答

2条回答 默认 最新

  • Null_Reference 2022-04-11 10:41
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 4月11日