我的表格如下:
id Branch type
1 breakfast xxxx
2 breakfast yyyy
3 breakfast zzzz
4 lunch aaaa
5 lunch xxxx
6 dinner xxxx
7 dinner yyyy
8 dinner yyyy
id
是主键和自动增量键。现在早餐有3种,午餐有2种,晚餐有3种。
我想要所有分支,但只选择一种类型或第一种类型。
我们怎么做?
例如,我必须得到以下结果:
id Branch type
1 breakfast xxxx
4 lunch aaaa
6 dinner xxxx
答案 0 :(得分:1)
select id, branch, type group by branch order by id
答案 1 :(得分:1)
如果您不想依赖group by
子句的MySQLs strange handling(我相信在最近的版本中已禁用),那么这将适用于任何符合ANSI SQL的数据库(包括SQL Server,你标记了问题:
select t.*
from table t
join (
select min(id) min_id, branch
from table
group by branch
) x on t.id = x.min_id and t.branch = x.branch;
答案 2 :(得分:0)
SELECT branch, MIN(id), MIN(type) FROM [Table] GROUP BY branch
将重新排列您的列,但它应该产生您想要的。
答案 3 :(得分:0)
您可以使用min
和group by
函数轻松完成此操作:
select min(t.id) as id,t.branch,min(t.type) as type
from test t
group by t.branch
order by min(t.id);