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
列的每个值的第一个记录。
这个答案根本就是错误的,它被接受是可悲的。 MySQL在文档中特别提出警告:'SELECT'中不在'GROUP BY'中的列来自任意行。 –