code5:oracle-求一个专业表中每个专业分数最高的人,如果分数相同,把姓名合并输出

求一个专业表中每个专业分数最高的人,如果分数相同,把姓名合并输出。

表的结构如下:

需要实现的效果如下:

--创建sql的脚本:

create table DM_XSZYB_TEST
(
  xm VARCHAR2(200),
  zy VARCHAR2(200),
  fs NUMBER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

--插入脚本:

insert into dm_xszyb_test (XH, ZY, FS)
values ('小强', '语文', 1);

insert into dm_xszyb_test (XH, ZY, FS)
values ('芳芳', '语文', 2);

insert into dm_xszyb_test (XH, ZY, FS)
values ('小强', '数学', 3);

insert into dm_xszyb_test (XH, ZY, FS)
values ('芳芳', '数学', 4);

insert into dm_xszyb_test (XH, ZY, FS)
values ('阿拉蕾', '数学', 5);

insert into dm_xszyb_test (XH, ZY, FS)
values ('小强', '英语', 6);

insert into dm_xszyb_test (XH, ZY, FS)
values ('芳芳', '英语', 7);

insert into dm_xszyb_test (XH, ZY, FS)
values ('小强', '物理', 8);

insert into dm_xszyb_test (XH, ZY, FS)
values ('芳芳', '物理', 9);

insert into dm_xszyb_test (XH, ZY, FS)
values ('阿拉蕾', '物理', 10);

insert into dm_xszyb_test (XH, ZY, FS)
values ('小强', '化学', 11);

insert into dm_xszyb_test (XH, ZY, FS)
values ('芳芳', '化学', 12);

insert into dm_xszyb_test (XH, ZY, FS)
values ('阿拉蕾', '化学', 13);

insert into dm_xszyb_test (XH, ZY, FS)
values ('李梅', '英语', 7);

您先思考,我个人答案在最下面,您写出您自己的答案后再看我的。我的答案目前不理想。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

select wm_concat(b.xh)as xm, a.zy, b.fs
  from (select zy, max(fs) as zgf from dm_xszyb_test group by zy) a, dm_xszyb_test b
 where a.zy = b.zy and a.zgf = b.fs
group by a.zy,b.fs;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值