假设我们有一个类似下面的表。
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"并且绝对不是按名字分组。
答案 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);