Sqlite:ORDER BY每组的MAX值,但返回所有行

时间:2017-07-03 14:26:02

标签: sql sqlite

我坚持这个。 我想按每组的最大值订购一张表。 (但返回所有行)。

通过示例总是更容易:

def myFunction(provider, obj_type, flag_type)
    obj_label_list = []
    if flag_type == 1:
        obj_type_list = provider.mgmt.list_replication_controller()
    elif flag_type == 2:
        obj_type_list = provider.mgmt.list_node()
    elif flag_type == 3:
        obj_type_list = provider.mgmt.list_image()

所需的结果集:

Team | Player | Score
---
red  | Bob  | 32  
red  | Jill | 34  
red  | Shawn| 42  
blue | Jake | 29  
blue | Paul | 26
blue | Mike | 35

2 个答案:

答案 0 :(得分:2)

您可以使用相关子查询:

select t.team, t.player,
       (select max(t2.score) from t t2 where t2.team = t.team) as max_score
from t;

您可以使用group byjoin执行类似操作。

答案 1 :(得分:2)

您可以在选择表

上使用内部联接
  select t.team, a.player, t.score
  from my_table 
  inner join (
      select team, max(score)
      from my_table 
      group by team
  ) t on t.team = a.team 
  order by t.team