楼主: Rock2000
1293 2

[有偿编程] 怎样去除有相同特征的记录 [推广有奖]

  • 1关注
  • 24粉丝

学术权威

22%

还不是VIP/贵宾

-

威望
1
论坛币
104812 个
通用积分
25.6012
学术水平
55 点
热心指数
74 点
信用等级
48 点
经验
23619 点
帖子
547
精华
0
在线时间
10774 小时
注册时间
2004-5-27
最后登录
2024-4-25

20论坛币
  1. 怎样去除有相同特征的记录
  2. 有一批数据,结构如下
  3. id    name   mark  age
  4. 001   张三   1     20
  5. 002   张三   1     23
  6. 003   张三   1     25
  7. 004   张三   1     20
  8. 005   李四   1     21
  9. 006   李四   1     23
  10. 007   李四   2     22
  11. 008   王五   1     26
  12. 009   王五   2     28
  13. 010   王五   1     21
  14. 011   刘六   2     26
  15. 012   刘六   2     26

  16. 要求:如果name是相同并且mark是相同(比如都是“1”或都是“2”),删除,如果mark有不的,则保留,保留的数据如下:

  17. id    name   mark  age
  18. 005   李四   1     21
  19. 006   李四   1     23
  20. 007   李四   2     22
  21. 008   王五   1     26
  22. 009   王五   2     28
  23. 010   王五   1     21

  24. 如何实现?
复制代码


最佳答案

zhengbo8 查看完整内容

通过sql计算平均值可以巧妙实现。
关键词:Mark name 如何实现 Mar Age 记录
沙发
zhengbo8 发表于 2013-12-30 21:38:58 |只看作者 |坛友微信交流群
通过sql计算平均值可以巧妙实现。

  1. data a;
  2.         input id $ name $ mark age;
  3. datalines;
  4. 001   张三   1     20
  5. 002   张三   1     23
  6. 003   张三   1     25
  7. 004   张三   1     20
  8. 005   李四   1     21
  9. 006   李四   1     23
  10. 007   李四   2     22
  11. 008   王五   1     26
  12. 009   王五   2     28
  13. 010   王五   1     21
  14. 011   刘六   2     26
  15. 012   刘六   2     26
  16. ;

  17. proc sql;

  18.         create table result as
  19.         select *  from a
  20.         group by name
  21.         having avg(mark)>1 and avg(mark) <2
  22.         order by id;

  23. quit;
复制代码


已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

使用道具

藤椅
Rock2000 发表于 2013-12-30 22:11:58 |只看作者 |坛友微信交流群
zhengbo8 发表于 2013-12-30 21:38
通过sql计算平均值可以巧妙实现。
就这么简单,谢谢。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 21:27