100分求一条Sql

new_life 2004-07-30 11:48:16
表Table1
id name
1 a
1 b
1 c
2 d
2 e
2 f
4 a
5 a
5 t
6 y
6 g
目标:
id name
1 a
2 d
4 a
5 a
6 y
写一条sql怎么实现
...全文
177 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyingjames 2004-07-31
  • 打赏
  • 举报
回复
首先,我建立的表跟斑竹的表几乎是一样的,方法也是一样的。
SQL> select *
2 from tbtry
3 /

ID NAME
---------- ----------
1 a
1 b
2 c
2 d
3 a
4 s
5 y
5 f
方法一
SQL> select a.id,a.name
2 from tbtry a,(select min(rowid) minrowid
3 from tbtry
4 group by id) b
5 where a.rowid in b.minrowid
6 /

ID NAME
---------- ----------
1 a
2 c
3 a
4 s
5 y
方法二
SQL> select id,name
2 from tbtry
3 where rowid in (select min(rowid)
4 from tbtry
5 group by id)
6 /

ID NAME
---------- ----------
1 a
2 c
3 a
4 s
5 y
cswhj 2004-07-31
  • 打赏
  • 举报
回复
select distinct id,min(name) from table1 group by id order by id;
feiyingjames 2004-07-31
  • 打赏
  • 举报
回复
min函数不是单行函数,不能用where.
select a.id , a.name from table1 a
group by a.id
having a.rowid=1
suleen 2004-07-30
  • 打赏
  • 举报
回复
要排序也是这样:
select id,min(name)
from table1
group by id
order by id
赤赤 赤赤.
dinya2003 2004-07-30
  • 打赏
  • 举报
回复
不排序吗? 一楼的可以把每个id对应的最小记录找出来.
bzszp 2004-07-30
  • 打赏
  • 举报
回复
select id,min(name) name from table1 group by id;
tyrone98 2004-07-30
  • 打赏
  • 举报
回复
select a.id , frist_value( a.name ) from table1 a group by a.id
txlicenhe 2004-07-30
  • 打赏
  • 举报
回复
select * from table1 a
where rowid=(select min(rowid) from table1 where id=a.id)
马前小卒 2004-07-30
  • 打赏
  • 举报
回复
关注
ljian_mail 2004-07-30
  • 打赏
  • 举报
回复
select a.id,a.name from table1 a where a.rowid=(select min(b.rowid) from
table2 b where a.id=b.id)
ygchu70 2004-07-30
  • 打赏
  • 举报
回复
楼上几位写的和楼主给定的条件不一直啊,是楼主写错了???前面的是min(name),但是最后一个数据并不是给定的名字最小啊

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧