\nSAP HANA分析檢視查詢結果異常\n


您沒有提供您試圖實現的目標的完整細節。請參考SAP OSS 筆記 1993033 分析檢視查詢結果錯誤

在啟用分析檢視時,會生成列檢視。但是,某些工件無法在此列檢視中計算。在這種情況下,會在其頂部生成一個額外的計算檢視。如果在分析檢視中定義了以下元素,則必須執行計算檢視的生成

  • 輸入引數
  • 計算屬性
  • 單位或貨幣轉換

如果在分析檢視中定義了至少一個這些元素,則啟用會建立一個OLAP檢視和一個計算檢視。執行時的查詢始終指向計算檢視,計算檢視本身從OLAP檢視檢索資料。計算檢視獲取已聚合的資料,並且根據計算度量的公式和複雜性,對計算度量的查詢可能會返回意外的結果。

關於計算度量的放置,有三種可能性

  • OLAP,聚合前計算(這必須在分析檢視中顯式標記)
  • OLAP,聚合後計算(預設行為)
  • 計算檢視

如果公式使用計算屬性、輸入引數或需要計算檢視的其他計算度量,則必須在計算檢視中計算計算度量。

現在,查詢的結果取決於公式及其計算位置。例如,如果公式將度量的值乘以某個因子,則公式可能對聚合透明:CM1 = M1 * 1000

結果始終相同,無論公式是在(sum)聚合之前還是之後計算。

但是,這並不適用於新增常數值的公式,例如 CM2 = M1 + 1

說明(例如,M1 有 10 個值,每個值等於 1000)

    聚合前計算

    每個 CM2 的計算結果為 1001,總和聚合結果為 10010

    聚合後計算

    結果為 10 * 1000 + 1 = 10001

如果分析檢視定義了計算度量,一些在 OLAP 檢視中計算,一些在計算檢視中計算,則根據公式,它們的混合可能會很危險。

在分析檢視中,與它們的聚合型別不滿足交換律的計算度量可能會產生意外的結果——這取決於此檢視上的特定查詢。如果使用了以下至少一個元素,則請求此類計算度量的查詢可能存在風險

    group by 定義中的計算檢視屬性

    請求單位/貨幣轉換度量

    請求計數 distinct 度量

    分析檢視上的堆疊 SQL 查詢,例如

SELECT SUM(CALC_MEASURE) FROM (

SELECT SUM(CALC_MEASURE),A

FROM AVIEW GROUP BY A)

      

解決方案 −

如果如上所述,將在分析檢視上使用此類複雜查詢,則需要仔細處理計算度量,並應將其移動到需要在分析檢視之上建模的附加計算檢視中。分析檢視作為計算檢視的資料來源,計算檢視定義計算度量。“聚合前計算”選項的計算度量必須保留在分析檢視中。

更新於:2020年2月17日

207 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.