SQL - 在特定的列中选择具有鲜明的值的行

问题描述:

让我们假设我有以下表格:SQL - 在特定的列中选择具有鲜明的值的行

id  player_name  team 

    1  Gladiator  A 
    2  DarkLord   B 
    3  Alligator  A 
    4  MonaLisa   C 
    5  SpongBob   C 
    6  Mikasa   B 

我要选择从每队一名球员,至极意味着所有选定行在'team'列中必须具有唯一值。我怎样才能在MySQL中完成这项工作?

在我的例子中选择的行应该是:

id  player_name  team 

    1  Gladiator  A 
    2  DarkLord   B 
    4  MonaLisa   C 

这是一个使用派生表,所以你选择每队一个ID,并将其加入到原来的表做的一种方式。

select t.id, t.player_name, t.team 
from tablename t 
join (select team, min(id) as minid from tablename group by team) x 
on x.team = t.team and x.minid = t.id 

一个简单的方法是按条件使用组提取。 (假设你的表名是TEAM_TABLE)

SELECT * FROM TEAM_TABLE GROUP BY TEAM; 

这将返回发生的team列的每个值的第一个记录。

+1

这个答案根本就是错误的,它被接受是可悲的。 MySQL在文档中特别提出警告:'SELECT'中不在'GROUP BY'中的列来自任意行。 –