LOOP GROUP BY 分组循环的使用方法小栗子
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 分组循环的使用方法小栗子相关推荐
- ABAP 新语法 LOOP AT Group 和 REDUCE 分组循环
*LOOP AT itab result [cond] GROUP BY key ( key1 = dobj1 key2 = dobj2 - * [gs = GROUP SIZE] [gi = GRO ...
- 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 = ...
- 对对象数组进行分组的最有效方法
本文翻译自:Most efficient method to groupby on an array of objects What is the most efficient way to grou ...
- 卷积网络基础知识---Group Convolution分组卷积
Group Convolution分组卷积,以及Depthwise Convolution和Global Depthwise Convolution https://www.cnblogs.com/s ...
- python pandas聚合_Python Pandas分组聚合的实现方法
Pycharm 鼠标移动到函数上,CTRL+Q可以快速查看文档,CTR+P可以看基本的参数. apply(),applymap()和map() apply()和applymap()是DataFrame ...
- mysql十分钟分组_MYSQL每隔10分钟进行分组统计的实现方法
前言 本文的内容主要是介绍了mysql每隔10分钟进行分组统计的实现方法,在画用户登录.操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了) ...
- mysql单列去重复group by分组取每组前几条记录加order by排序
<div class="post"><h1 class="postTitle"><a id="cb_post_title ...
- 数据库异常---ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环
数据库 ORA-01436: 用户数据中的 CONNECT BY loop in user data 循环 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社 ...
- mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合
1. 聚合函数(Aggregate Function) MySQL(5.7 ) 官方文档中给出的聚合函数列表(图片)如下: 除非另有说明,否则聚合函数都会忽略空值(NULL values). 2. 聚 ...
最新文章
- 华为SDSec分为几层
- nebula如何实现用in实现any(x,y,z)的效果
- 电信申请固定ip_各个代理ip之间的关系
- c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...
- 还不会用typedef?C语言typedef的详细用法总结,一篇解决你的困惑。(学习笔记2--typedef设置别名)
- 【QT】QT从零入门教程(十四):标准颜色对话框类QColorDialog
- Linux -Docker
- 35岁是继续做测试,还是回家送外卖?
- 为什么Web前端工程师薪资越来越高?
- python abs的功能_python abs是什么意思?abs函数有什么用处?
- XV6操作系统make报错Makefile:192: *** recipe commences before first target. Stop. 的解决方法
- 长理2019选拔赛1.0
- 高效办公之高效学习技巧:倍速学习软件详解
- .Net iTextSharp 给Pdf添加图片水印
- 计算机语言表示教师节快乐,教师节快乐的祝福语38句
- 修图软件:Affinity Photo for Mac
- 计算机文字录入ppt,计算机基础—文字录入.ppt
- android studio连接Android模拟器调试
- 南昌市公安局警务综合系统案例
- css怎么让多余文字显示省略号