Google-Bigquery

與總數比較,與主要類別的百分比比較,按期間比較,例如逐月比較以獲得增長百分比

  • July 31, 2020

這是一個很大的問題。如果無法通過論壇給出具體的解決方案,我正在尋找可能的總體方向,可能的解決方案。我在 BigQuery 中工作,但語法幾乎與 SQL 相同,但某些函式除外。我對高級 SQL 比較陌生,我的任務是創建以下報告:

在此處輸入圖像描述

從下表:

在此處輸入圖像描述

報告需要通過 Google Data Studio 呈現,其中無法進行數據建模,因此必須提前在 SQL 中準備數據,然後才能載入到 Data Studio 中,Data Studio 將是視覺化/呈現工具。

我的想法是為每個所需的時間段編寫一個查詢,然後將所有這些查詢聯合起來,例如,“上週”作為一個時間段的查詢將是:

SELECT distinct orderid, 
      net_revenue,
      country,
      main_category, sub_cat, sub_sub_cat --there's several nested categories
      'last week' as period,
FROM table_orders
join table_order_values
 on table_orders.orderid = table_order_values.orderid
full outer join categories as cats
 on cats.product_id = table_orders.product_id
join countries
 on table_order_values.country = countries.country
and table_order_values.date > 
   DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK(sunday)), INTERVAL 1 WEEK) 
   AND table_order_values.date <= 
       DATE_TRUNC(CURRENT_DATE(), WEEK(sunday))

…在 UNION ALL 之後的不同時期的一堆表格的最終表格看起來像這樣: 在此處輸入圖像描述

但是,對於這個最終表,我不知道如何獲得每個時期的增長百分比(因此比較月比月或週比周等),或者如何正確計運算元類別的收入佔總收入的百分比(以及不是每個時期都有一堆聲明的變數),甚至更難 - 從主要類別中獲得任何子類別的收入百分比,然後還需要按國家/地區過濾……

這甚至可能是要求的方式嗎?我是否可以從一開始就以某種方式重組數據,以使這些百分比佔總數、主要類別和一段時間內的增長成為可能?

如果有人偶然發現我的問題正在尋找答案,我通過保存一個包含每個時期(月、周等)總計的表格來解決總數的百分比,然後將該表格與上面的數據表連接起來並使用總和(net_revenue) /max(total_revenue) 和該時期的視覺過濾器。這不是最優雅的解決方案,但它允許在嵌套類別中進行一些視覺互動。

引用自:https://dba.stackexchange.com/questions/271847