2016-10-14 79 views
1

我們目前在SAP Hana SPS12中遇到Window Functions問題。SAP Hana - 使用ORDER BY CLAUSE的STRING_AGG問題

我們的錯誤之一是當我們使用STRING_AGG函數。

下面是代碼:

/* 
CREATE TABLE TEST_STR_AGG (
    GROUP_ID varchar(1) 
    , CLASS_ID varchar(5) 
    , MEMBER varchar(5) 
); 
*/ 

TRUNCATE TABLE TEST_STR_AGG; 

INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX1', 'A0001'); 
INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX1', 'A0002'); 
INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX1', 'A0003'); 
INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX2', 'A0004'); 
INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX2', 'A0005'); 
INSERT INTO TEST_STR_AGG VALUES ('A', 'A_XX3', 'A0006'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX1', 'B0001'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX2', 'B0002'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX3', 'B0003'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX4', 'B0004'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX4', 'B0005'); 
INSERT INTO TEST_STR_AGG VALUES ('B', 'B_XX4', 'B0006'); 

SELECT GROUP_ID 
    , CLASS_ID 
    , STRING_AGG(MEMBER, ' ; ' **ORDER BY MEMBER ASC**) as MEMBERS 
FROM TEST_STR_AGG 
GROUP BY GROUP_ID 
    , CLASS_ID ; 

用於與ORDER BY條款完美運行補丁安裝前的STRING_AGG。現在,它只能使用少量的線條,因爲它在我給你的例子中工作。當我們處理超過500,000行時,如果我們在STRING_AGG中添加ORDER BY子句,那麼某些行將從我們的結果中消失。如果我們不是,它的工作原理。
我們在FIRST_VALUELAST_VALUE函數上有同樣的問題。

這似乎是被破壞的結果的核心優化規則...

有誰知道一些關於這一點,好嗎?

非常感謝

回答

2

是的,這是一個已知的錯誤。目前尚未準備好SAP備註,但它已在當前版本中修復。

/- 發現了SAP注本:

2365540 - 聚合函數AVG()返回?/NULL值當組合使用STRING_AGG包含ORDER BY子句

解 應用SAP HANA數據庫修訂> = 112.07(SPS11)或> = 122.02(SPS12)。

-/

+0

事實上,我們開始有,因爲我們應用122.02,在9月23日)的這個錯誤!它不與2個聚合函數的組合相關聯,但是隻有一個在大量的線上。 – KrasshX

+1

在這種情況下,您應該打開一個支持事件來修復更新版本。 –

+0

「Order By」按照Lars在版本1.00.122.04上運行的數據庫 – Eralper