相关疑难解决方法(0)

PostgreSQL - 获取具有列的Max值的行

我正在处理Postgres表(称为"生命"),其中包含time_stamp,usr_id,transaction_id和lives_remaining列的记录.我需要一个查询,它将为每个usr_id提供最新的lives_remaining总数

  1. 有多个用户(不同的usr_id)
  2. time_stamp不是唯一标识符:有时用户事件(表中逐行)将以相同的time_stamp发生.
  3. trans_id仅在非常小的时间范围内是唯一的:随着时间的推移它会重复
  4. remaining_lives(对于给定用户)可以随时间增加或减少

例:

time_stamp|lives_remaining|usr_id|trans_id
-----------------------------------------
  07:00  |       1       |   1  |   1    
  09:00  |       4       |   2  |   2    
  10:00  |       2       |   3  |   3    
  10:00  |       1       |   2  |   4    
  11:00  |       4       |   1  |   5    
  11:00  |       3       |   1  |   6    
  13:00  |       3       |   3  |   1    

因为我需要使用每个给定的usr_id的最新数据来访问该行的其他列,所以我需要一个给出如下结果的查询:

time_stamp|lives_remaining|usr_id|trans_id
-----------------------------------------
  11:00  |       3       |   1  |   6    
  10:00  |       1       |   2  |   4    
  13:00  |       3       |   3  | …

sql postgresql query-optimization cbo cost-based-optimizer

87
推荐指数
6
解决办法
9万
查看次数