如果你确实需要 id 这个字段的话, 你必须这么写:
select B.id, B.name, B.tag
from
(select min(tag) min_tag, name
from table1
group by name) A,
table1 B
where A.name = B.name and A.min_tag = B.tag;
解释一下吧, 在sql标准里, 如果用了group by和聚集函数, 那么select的字段必须是 group by的字段(例子里的name)或者 聚集函数(例子里的min(tag)). 所以
select id, name from table1 group by name
在某些数据库里是会报错的(好像oracle就是?)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。