💬個人網站:【芒果個人日志】
💬原文位址:SAP ABAP——OPEN SQL(五)【GROUPING & SORT】 - 芒果個人日志 (wyz-math.cn)
💂作者簡介: THUNDER王,一名熱愛财稅和SAP ABAP程式設計以及熱愛分享的部落客。目前于江西師範大學會計學專業大二大學在讀,同時任漢碩雲(廣東)科技有限公司ABAP開發顧問。在學習工作中,我通常使用偏後端的開發語言ABAP,SQL進行任務的完成,對SAP企業管理系統,SAP ABAP開發和資料庫具有較深入的研究。
💅文章概要:本文主要介紹一下SAP ABAP中OPEN SQL的GROUPING和SORT語句
🤟每日一言:寶劍鋒從磨砺出,梅花香自苦寒來。
目錄
AGGREGATE函數分類
GROUP BY
案例代碼示範
效果示例圖
HAVING
案例代碼示範
效果示例圖
SORT
案例代碼示範(CARRID升序)
效果示例圖
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.
效果示例圖
sflight資料庫
分組無限制條件效果
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.
效果示例圖
分組後限制條件效果
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.
效果示例圖
升序
案例代碼示範(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.
效果示例圖