1.格式:

  LOOP AT 内表  INTO DATA(工作区)  GROUP BY ( 字段  = 工作区-字段size  = GROUP SIZE  "分组组数--index = GROUP INDEX ) "分组的组序号ASCENDING    ASSIGNING FIELD-SYMBOL(<组>).LOOP AT GROUP <组> ASSIGNING FIELD-SYMBOL(<指针>)."对指针进行操作,和普通的loop循环相似ENDLOOP.ENDLOOP.

2.简而言之:就是第一个loop循环是把内表进行分组,第二loop循环是把组里的数据循环读出来进行修改判断等操作。
3.可以替代AT END OF /AT NEW OF。
4.具体实例-复制就能用

TYPES: BEGIN OF ty_employee,name TYPE char30,role TYPE char30,age  TYPE i,sex  TYPE char10,END OF ty_employee,
ty_employee_t TYPE STANDARD TABLE OF ty_employee WITH KEY name."对内表进行赋值"
DATA(gt_employee) = VALUE ty_employee_t(
( name = 'John'     role = 'ABAP guru'       age = 34  sex =  'MAN'   )
( name = 'Alice'     role = 'FI Consultant'   age = 42  sex =  'WOMAN'  )
( name = 'Barry'    role = 'ABAP guru'       age = 54   sex =  'WOMAN'  )
( name = 'Mary'     role = 'FI Consultant'   age = 37  sex =  'WOMAN' )
( name = 'Arthur'   role = 'ABAP guru'       age = 34  sex =  'MAN'  )
( name = 'Mandy'   role = 'SD Consultant'     age = 64  sex =  'MAN'  ) ).DATA: gv_tot_age TYPE i,gv_avg_age TYPE decfloat34.
"通过角色进行分组"
LOOP AT gt_employee INTO DATA(ls_employee) GROUP BY ( role  = ls_employee-rolesize  = GROUP SIZE  "分组组数"index = GROUP INDEX ) "分组的组序号"ASCENDING    ASSIGNING FIELD-SYMBOL(<group>).CLEAR: gv_tot_age.WRITE: / | 组序号: { <group>-index }    角色: { <group>-role WIDTH = 15 }|& |     这个组有几条数据: { <group>-size  } |."loop循环组,将组里的数据读出来"           LOOP AT GROUP <group> ASSIGNING FIELD-SYMBOL(<ls_member>).gv_tot_age = gv_tot_age + <ls_member>-age.WRITE: /13 <ls_member>-name .ENDLOOP.gv_avg_age = gv_tot_age / <group>-size.WRITE: / |组平均年龄: { gv_avg_age }|.SKIP.
ENDLOOP.

实例最终结果图:

分享使我快乐,我是寒武青锋,如果你觉得还不错的话,请你给个赞吧

LOOP GROUP BY 分组循环的使用方法小栗子相关推荐

  1. ABAP 新语法 LOOP AT Group 和 REDUCE 分组循环

    *LOOP AT itab result [cond] GROUP BY key ( key1 = dobj1 key2 = dobj2 - * [gs = GROUP SIZE] [gi = GRO ...

  2. 2019.12.05【ABAP随笔】 分组循环(LOOP AT Group) / REDUCE

    ABAP 7.40新语法 LOOP AT Group 和 REDUCE 1 *LOOP AT itab result [cond] GROUP BY key ( key1 = dobj1 key2 = ...

  3. 对对象数组进行分组的最有效方法

    本文翻译自:Most efficient method to groupby on an array of objects What is the most efficient way to grou ...

  4. 卷积网络基础知识---Group Convolution分组卷积

    Group Convolution分组卷积,以及Depthwise Convolution和Global Depthwise Convolution https://www.cnblogs.com/s ...

  5. python pandas聚合_Python Pandas分组聚合的实现方法

    Pycharm 鼠标移动到函数上,CTRL+Q可以快速查看文档,CTR+P可以看基本的参数. apply(),applymap()和map() apply()和applymap()是DataFrame ...

  6. mysql十分钟分组_MYSQL每隔10分钟进行分组统计的实现方法

    前言 本文的内容主要是介绍了mysql每隔10分钟进行分组统计的实现方法,在画用户登录.操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了) ...

  7. mysql单列去重复group by分组取每组前几条记录加order by排序

    <div class="post"><h1 class="postTitle"><a id="cb_post_title ...

  8. 数据库异常---ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环

    数据库 ORA-01436: 用户数据中的 CONNECT BY  loop in user data  循环 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社 ...

  9. mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合

    1. 聚合函数(Aggregate Function) MySQL(5.7 ) 官方文档中给出的聚合函数列表(图片)如下: 除非另有说明,否则聚合函数都会忽略空值(NULL values). 2. 聚 ...

最新文章

  1. 华为SDSec分为几层
  2. nebula如何实现用in实现any(x,y,z)的效果
  3. 电信申请固定ip_各个代理ip之间的关系
  4. c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...
  5. 还不会用typedef?C语言typedef的详细用法总结,一篇解决你的困惑。(学习笔记2--typedef设置别名)
  6. 【QT】QT从零入门教程(十四):标准颜色对话框类QColorDialog
  7. Linux -Docker
  8. 35岁是继续做测试,还是回家送外卖?
  9. 为什么Web前端工程师薪资越来越高?
  10. python abs的功能_python abs是什么意思?abs函数有什么用处?
  11. XV6操作系统make报错Makefile:192: *** recipe commences before first target. Stop. 的解决方法
  12. 长理2019选拔赛1.0
  13. 高效办公之高效学习技巧:倍速学习软件详解
  14. .Net iTextSharp 给Pdf添加图片水印
  15. 计算机语言表示教师节快乐,教师节快乐的祝福语38句
  16. 修图软件:Affinity Photo for Mac
  17. 计算机文字录入ppt,计算机基础—文字录入.ppt
  18. android studio连接Android模拟器调试
  19. 南昌市公安局警务综合系统案例
  20. css怎么让多余文字显示省略号

热门文章

  1. 软件测试4-接口测试
  2. 有关树的常见算法汇总【持续更新中】
  3. webupload 上传
  4. letvx500版本android,乐视 LetvX500 开启USB调试模式
  5. MySQL存储文本和图片
  6. 截图即OCR识别文字天若开源使用
  7. EN 1154建筑五金件受控关门装置—CE认证
  8. 计算机教育部学科评估2019,2019年度第四轮学科评估结果排名,浙大逆袭位居榜首...
  9. 上线WMS仓库管理系统一般要多久?企业要做好怎样准备?
  10. pd.cut()与pd.qcut()的区别