相关疑难解决方法(0)

获取具有列的最大值的行

表:

UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)

我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)

更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.

sql oracle greatest-n-per-group

556
推荐指数
10
解决办法
56万
查看次数

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万
查看次数

Django orm获得每个组的最新消息

我正在使用django 1.6与Mysql

我有这个型号

class Student(models.Model):
     username = models.CharField(max_length=200, unique = True)

class Score(models.Model)
     student = models.ForeignKey(Student)
     date = models.DateTimeField()
     score = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

现在我想获得每个学生的最新成绩记录.
我试过了

Score.objects.values('student').annotate(latest_date=Max('date'))
Run Code Online (Sandbox Code Playgroud)

我也试过了

Score.objects.values('student__username').annotate(latest_date=Max('date'))
Run Code Online (Sandbox Code Playgroud)

如描述Django ORM - 获取组的最新记录, 但它没有帮助.

python django django-orm django-queryset

44
推荐指数
3
解决办法
2万
查看次数

Django:选择具有最大时间戳的值或连接到同一个表

我有一个简单的Django模型

class Server(models.Model):
    name = models.CharField(max_length=120)

class ServerPropertie(models.Model):
    name = models.CharField(max_length=120)
    value = models.CharField(max_length=120)
    timestamp = models.DateTimeField()
    server = models.ForeignKey(Server)
Run Code Online (Sandbox Code Playgroud)

我想将get_properties方法添加到Server模型,该模型将返回当前服务器的所有最后一个属性.我的意思是它应该返回当前服务器的所有属性名称的名称和值,并且每个uniq属性名称应该具有值,该行具有最大时间戳.

我可以在原始的硬编码原始SQL(我使用postgres)中做到这一点:

SELECT t1.name, t1.value FROM environments_serverpropertie t1
JOIN (SELECT max("timestamp") "timestamp", name 
      FROM environments_serverpropertie
      group by name) t2 on t1.name = t2.name and t1.timestamp = t2.timestamp;
Run Code Online (Sandbox Code Playgroud)

或者在python中,但我相信存在pythonic解决方案.请你帮助我好吗.

python sql django postgresql

4
推荐指数
1
解决办法
1446
查看次数