开发者社区 问答 正文

这个需求怎么用sql查询

我有一个表,类似这样screenshot

展开
收起
a123456678 2016-06-29 14:03:22 1520 分享 版权
1 条回答
写回答
取消 提交回答
  • 如果你确实需要 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就是?)

    2019-07-17 19:49:05
    赞同 展开评论
问答分类:
SQL
问答标签:
问答地址: