将MySQL结果限制为每个人#34; Group"

时间:2016-01-09 19:35:50

标签: mysql select

假设我们有一个类似下面的表。

Id | Name | Group
-----------------
1  | John | 1
2  | Zayn | 2
3  | Four | 2
4  | Ben_ | 3
5  | Joe_ | 2
6  | Anna | 1

下面的查询将选择所有这些。

SELECT `Name` FROM `Table` WHERE 1;

我如何从每组中只选择一个人?只要第1组中只有一个名称,第2组中有一个名称等,它就不重要了。

GROUP BY子句不适合这个(根据我的错误控制台),因为我选择了非聚合值,这是有道理的。

DISTINCT条款在这里也不是很好,因为我不想选择" Group"并且绝对不是按名字分组。

1 个答案:

答案 0 :(得分:0)

如果不重要,结果名称您可以利用某些组功能,例如使用max或min ..

利用群组功能

  select max(name) from your_table 
  group by Group;

否则你可以使用子查询

select name from your_table 
where Id in (select min(Id) from your_table group by Group);