SAP ABAP——OPEN SQL(五)【GROUPING & SORT】

简介: 本文主要介绍SAP ABAP中OPEN SQL的GROUPING和SORT语句

本文主要介绍SAP ABAP中OPEN SQL的GROUPING和SORT语句


AGGREGATE函数分类

函数 功能
AVG 取平均值
COUNT 取个数
MAX 取最大值
MIN 取最小值
STDDEV 取标准偏差
SUM 取合计

注意!所有AGG函数的括号内字段前后必须有一个空格如SUM( CARRID ),否则系统检测不出来!


GROUP BY

使用Aggregate函数之前,选择数据时需要用GROUP BY语句进行分组。GROUP BY语句是当表的特定字段中存在相同的值时就显示在一行中

SELECT <f1> <f2> <agg>...
     GROUP BY <f1> <f2>

案例代码演示

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID.
   WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

e76e0774715113ee749f381388840f1.png

00b57838a82e4c518efeeb2b17cd84c.png


HAVING

HAVING语句主要是用来对进行分组后进行限制条件的语句,要放在GROUP BY语句之后,下面案例演示中限制了上面SUM( PRICE )的值需要大于1000

SELECT <f1> <f2> <agg>...
     ...
     GROUP BY <f1> <f2>
     HAVING <condition>

案例代码演示

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) 
 > 1000.
WRITE:/ GV_CARRID,GV_PRICE.
ENDSELECT.

效果示例图

8f7b27ce419f008534410b02860ddec.png


SORT

在查询数据时可以使用ORDER BY语句,则查询出来的结果会按照ORDER BY指定的字段进行排序。若不使用ORDER BY就会任意地显示排序结果。其中ORDER BY语句还有如下特点需要牢记

- 根据表地KEY值进行排序

- 只适用于SELECT*语句

- 在JOIN语句和视图中无法使用

- 若不指定排序为升序还是降序则默认为升序

SELECT <lines>*
...
ORDER BY <f1>[ASCENDING|DESCENDING] <f2>[ASCENDING|DESCENDING]....

案例代码演示(CARRID升序)

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) > 1000 ORDER BY  CARRID  ASCENDING.
 WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

72a803c027d77cfb11ec4e2cefcf6c5.png


案例代码演示(CARRID降序)

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) > 1000 ORDER BY  CARRID  DESCENDING.
 WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

a342af22305bc3ba11800f5769c29ac.png

目录
相关文章
|
3月前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
|
3月前
|
SQL 应用服务中间件 数据库
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
|
3月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
3月前
|
SQL 数据库 数据处理
什么是 ABAP SQL Function
什么是 ABAP SQL Function
什么是 ABAP SQL Function
|
3月前
|
Java SQL 数据库
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
|
3月前
|
SQL 数据库 存储
关于 ABAP OPEN SQL 中的 FLPT 数据类型
关于 ABAP OPEN SQL 中的 FLPT 数据类型
|
SQL
ABAP 740新的OPEN SQL增强特性
ABAP 740新的OPEN SQL增强特性
114 0
ABAP 740新的OPEN SQL增强特性
|
27天前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
45 13
|
23天前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
21天前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
34 6