SeaTable 是一個支援多種資料型別的協同表格和資訊管理工具。它不僅方便記錄大量結構化的資料,還提供了多種資料處理、分析和視覺化的功能。本文將介紹如何綜合地使用 SeaTable 的 SQL 外掛、資料連結功能、函式計算功能,來從一份線上訂單資料中分析出每年的復購比例、使用者留存比例。
通過本文,我們會看到,相比於 Excel,SeaTable 在資料分析方面有以下的優勢:
- 支援 SQL 查詢,可以完成相對複雜的資料查詢。
- 支援資料的擴表關聯。一些場景下,只有擴表關聯才可以完成資料的分析,比如訂單表需要和使用者表關聯。
- 能夠處理 10 萬行甚至百萬行以上的記錄。
相比於傳統的資料庫,SeaTable 則更加直觀易用:
- 可以通過介面直接把中間結果匯出為新的表格,然後再進行分析。
- 可以直接建立公式列,對資料進行計算加工,然後再進一步分析。
- 可以直接通過介面對一些不合理的資料進行清理或修改。
資料集介紹
如下圖,這是一張軟體產品的線上訂單資料表,記錄了所有訂單的詳細資訊,如 ID、使用者名稱、付費金額、建立時間(首次付費時間)等等。其中軟體是以年付費的形式銷售的,使用者需要每年續費一次以便繼續使用軟體。Price 記錄的是美元價格。
我們新增 SQL 外掛,並且放置到工具欄後,就可以快速地進行資料查詢了。
首先,我們想查詢所有訂單的數量,那麼 SQL 語句如下:
select count(*) from Orders
count(*) 表示對所有條目數量的計數,結果為 1855,表示目前為止總共的訂單數量有 1855 個。
接下來,我們想看一下,這些訂單來自多少個不同的使用者,那麼語句如下:
select count(distinct User) from Orders limit 1000
同上,用 count 函式,distinct 表示去重,相同的值只保留一次。結果為 598,表示總共購買的使用者有 598 人。
那麼在這麼多使用者中,我們想看一下, 2020 年付費能力最強的前十個使用者是哪些人,則可以寫入如下語句:
select User, sum(Paid) from Orders where `Created At` > '2020-01-01' and `Created At` <= '2021-01-01' group by User order by sum(Paid) desc limit 10
我們將付費時間限定為 2020 年,對使用者的付費金額求和,並且以付費金額的大小來降序顯示十條記錄。
用 ISOMonth 函式分析本月和上月資料
SeaTable 中的日期一般用 ISO 國際標準格式來儲存。它提供了 ISODate 和 ISOMonth 兩個函式來幫助我們按照日期對資料進行統計分析。
當我們想要檢視本月的付費金額時,我們可以用時間函式 ISOMonth 來對月份進行過濾。
計算本月付費金額,語句如下:
select sum(Paid) from Orders where ISOMonth(`Created At`) = ISOMonth(today())
計算上月付費金額,語句如下:
select sum(`Paid`) from Orders where ISOMONTH(`Created At`) = ISOMONTH(dateAdd(today(), -1, "months"))
分析 2019 年首次購買的使用者的續訂比例
訂單表中的資料是以訂單為單位記錄的,要分析使用者的續訂比例,我們首先需要得到一張以使用者為單位的表。
我們用下面的 group by 語句,可以得到每個使用者的首次購買時間和最後購買時間,查詢出結果後,匯出為一個新的子表——使用者購買時間表。
select User, min(`Created At`), max(`Created At`) from Orders group by User limit 2000
接下來新建 {First year} 和 {Last year} 兩個公式列 ,求出首次購買年份和最後購買年份。
這樣我們就可以進行查詢了,首先得到 2019 年新增的購買人數為 110 人。
select count(*) from Users where `First year`=2019
然後可以查詢出首次購買時間在 2019 年,且最後購買時間是 2019 年之後的人,是 65 人。由此我們得出 2019 年新使用者的續訂比例為 59.0%。
select count(*) from Users where `First year`=2019 and `Last year`>2019
分析 2020 年復購金額佔比
下面來進行一個比較複雜的分析,也就是 2020 年復購金額佔比。我們用資料處理的"自動關聯"建立訂單表和上面得到的使用者表的關聯關係。對於 2020 年的每個訂單,如果這個使用者首次購買時間早於 2020 年,那麼我們認為這是一次復購。
因此,首先我們在已得到的使用者表中,使用連結列和自動新增連結功能,為 Orders 表和使用者購買時間表建立關聯,以方便引用 {First year} 列到 Orders 表中進行計算。
建立關聯後,我們將 {First year} 列用連結公式引用到 Orders 表中,然後再新建兩個公式列,
用日期公式計算出 {Created year}——購買年份
標記出復購的使用者:當 {Created year} 大於 {First year} 時,那麼我們認為屬於復購情況,顯示為 1,否則顯示為 0
接下來我們就可以進行查詢了,首先查詢 2020 年訂單總金額,為 106627.5 。
然後我們查詢 2020 年的復購訂單金額,為 89915.5 。因此 2020 年復購金額佔比為 84.3%。
以上,我們用 SeaTable 輕鬆又快速地完成了線上訂單資料的分析工作,是不是非常方便呢。SeaTable 的功能不僅豐富,而且也很簡單易用,大家可以根據具體場景靈活搭建出自己的業務應用。