為什麼總數與表格中的值不相符?

「探索」中的「總計」功能會加總不重複的基礎資料。也就是說,如果您只查看「探索」資料表或視覺化效果中顯示的資料,「總計」可能會傳回與預期不同的值。請繼續閱讀下文,瞭解詳情和計算總金額的解決方案。

總計金額可能較低的原因

為計算總計,Looker 會產生 SQL 查詢,並從 SELECTGROUP BY 陳述式中,省略在「探索」中選取的所有未透視維度,然後對資料庫執行查詢。

舉例來說,假設您想計算一段時間內購買特定類別產品的不重複使用者人數,您可以建立「探索」查詢,並依「產品類別」分組「使用者人數」

用於建立這個資料表的 SQL 如下所示:

  SELECT
  products.category AS 'products.category',
  COUNT(DISTINCT users.id ) AS 'users.count'

啟用「總計」選項後,使用者總數為 12,290 人。

請注意,如果您手動在「使用者計數」欄中新增值,得到的數字會遠高於 Looker 報表的總計。由於每位使用者可購買多個類別的產品,因此自行加總各列時,部分使用者會重複計算。不過,Looker 會使用 SQL 查詢計算「不重複」使用者人數,因此不會重複計算。

Looker 用來計算總計的 SQL 如下:

  SELECT
  COUNT(DISTINCT users.id ) AS 'users.count'

請注意,Looker 會使用 users.count 測量指標計算總計,並從 SQL 查詢的 SELECTGROUP BY 陳述式中省略 products.category (未透視的維度)。

任何篩選器和聯結也會納入總計查詢,這樣一來,即使查詢有所變更,總計仍會保持一致。

由於總計查詢會省略未樞紐分析的維度,因此在 Looker 執行的 SQL 查詢中,取決於查詢中維度是否存在的 Liquid 變數 (例如 _in_query_is_selected) 會評估為 false,以計算總計。

總數可能較高或為空值的原因

Looker 總計可能與加總列值得到的總計不同。具體來說,在下列情況下,總計金額可能會較高,甚至顯示為 null

  • 依據指標篩選查詢時: Looker 會先計算總計,再將指標篩選器的 HAVING 子句套用至探索的個別資料列。
    • 如果整個資料集的整體匯總值符合度量篩選條件,系統就會顯示總計。由於系統會在篩選器從主要資料探索資料表移除資料列之前計算這個總數,因此總數可能會高於顯示資料列的總和。
    • 如果整個資料集的整體匯總值不符合度量篩選器,篩選器條件會針對總計查詢評估為 false。由於總計查詢未傳回任何結果,因此總計會顯示為 null
  • 查詢達到資料列上限時:Looker 建立的查詢總計不受這些限制影響,因為總計只會傳回單一資料列。

為什麼列總計可能不同

這個頁面的「為什麼總計可能較低」部分說明,Looker 會生成 SQL 查詢,但不會納入在「探索」中選取的未透視維度,然後再對資料庫執行查詢。

如果是列總計,Looker 的行為類似,但不會移除未樞紐分析的維度,而是從 SQL 查詢的 SELECTGROUP BY 陳述式中移除樞紐分析的維度,藉此計算總計。

如何計算價值總計

如要只計算資料表中的值總和,可以使用資料表計算建立新資料欄。詳情請參閱下列範例。

計算欄總計

如要計算資料欄值的總和,可以在資料表計算中使用 sum 函式:

  sum(${view_name.field_name})

或者,如果您有權建立資料表計算,也可以使用「執行資料欄總計」快速計算。

計算資料列總計

如要計算資料列值的總和,您可以在資料表計算中使用 sumpivot_row() 函式:

  sum(pivot_row(${view_name.field_name}))
注意:這個方法會產生新的資料欄,不會顯示為標準的「總計」列或欄。

或者,如果您有權建立資料表計算,也可以使用「執行資料列總數」快速計算。

其他資源

執行匯總作業的資料表計算 (例如使用 percentilemedian 的計算) 也可能無法如預期加總。這是因為資料表計算功能會使用「總計」資料列中的值計算總計,而不是使用資料欄中的值。如需疑難排解提示,請參閱「將可能造成混淆的表格計算總計顯示為 Null」最佳做法頁面。