前面我們了解到,如何在產品分析(Product Analytics)中建立不同類型的 Insight 來輔助觀察。然而,許多時候我們想觀察的事情,很難直接利用預設選項展示。
舉例來說,我們有這樣的事件:
posthog.capture('purchase_product', {
price: 100,
amount: 10
})
我們可能想觀察平均的單筆成交金額,此時就不容易透過一般的數值選擇器達成。當然,直接在 Event 中加入計算好的屬性也是可行的選項,但時間無法逆轉,如果過去的事件已經缺少這個數值,就需要找其他方法補上。
我們有兩個選項:一、使用原有圖表,搭配 SQL Expression;二、使用 SQL Insight。
展開 Series 的數值選擇器後,SQL Expression 允許你使用 SQL 表達式來計算,例如:
avg(price * amount)
PostHog 內部使用 ClickHouse,因此許多函數都可以直接使用,具體可參考 Functions 文件 與 Aggregations 文件。

事件的 Properties 並不會自動補全。如果需要查看非自訂屬性的名稱,目前我找到最簡單的做法,是到 Data 中的 Event Definition 找到一個事件,再從 Raw 裡面尋找對應的 Key。


如果仍然不夠用,可以使用 SQL Insight:

兩種路徑都可以進入 SQL 編輯介面來撰寫 SQL,並透過 Visualization 切換圖表類型。

這邊特別想提的是兩個變數:{filters.dateRange.from}、{filters.dateRange.to}。
後續我們會利用到儀錶盤功能,該功能允許你同時針對不同 Insight 進行查詢,而儀錶盤設定的時間範圍會透過這兩個變數傳遞。因此,如果 SQL 需要利用時間進行篩選,可以考慮直接使用這兩個變數。
到這裡,我們已經可以更自由地組合想觀察的資料。但很多時候,事件本身攜帶的資料仍不足以提供完整的分析資訊。
下一篇,我們會把資料庫等外部資料來源接進 PostHog,看看如何把產品事件和系統本身的資料放在一起分析。
如果你願意花 30 秒留下回饋,我會用這些意見來調整後續文章:分享你的意見
