跳至內容
Astera Technology

草稿也計入分母,取消率會低估多少?

按已完成或已取消的預約計比例;沒有這類個案時,比例應未能計算。

下載完整個案資料及參考答案 ↓

先準備用來排查的資料

本例取消率只看已完成及已取消的預約,草稿未進入這個範圍。分子和分母都須按同一政策選取;即使用小數計百分比,也補不了計入範圍錯誤。

以下完整建表及資料只在新的 SQLite 測試資料庫執行。全部紀錄均為假設,數量以件計,輸入的 cents 金額欄以貨幣的分存整數;計算後的平均數可能不足整分。小型例子的各表均完整列在預覽。

假設輸入:bookings
編號狀態代碼
B1cancelled
B2completed
B3completed
B4draft
下載可編輯 CSV ↓
可直接執行的完整測試資料
CREATE TABLE bookings(id TEXT PRIMARY KEY,status TEXT);
INSERT INTO bookings VALUES ('B1','cancelled'),('B2','completed'),('B3','completed'),('B4','draft');

重現錯誤結果,再核對更正

錯誤示範查詢:只用來重現問題
SELECT ROUND(100.0*SUM(CASE WHEN status='cancelled' THEN 1 ELSE 0 END)/COUNT(*),2) AS cancellation_pct FROM bookings;
實際執行的錯誤示範結果
取消百分比
25
下載可編輯 CSV ↓
更正後的 SQLite 查詢
SELECT ROUND(100.0*SUM(CASE WHEN status='cancelled' THEN 1 ELSE 0 END)
/NULLIF(SUM(CASE WHEN status IN ('cancelled','completed') THEN 1 ELSE 0 END),0),2) AS cancellation_pct FROM bookings;
更正查詢的實際結果
取消百分比
33.33
下載可編輯 CSV ↓

合資格三筆中有一筆取消,比例是 33.33%;草稿也計入便變成 25%。數字只是這組假設個案的比例,不是服務指標基準或客戶行為成果。

套用前先測邊界及資料範圍

全部改成草稿後,分母是零,比例以空值表示未能計算;寫成 0% 會令人以為已量度而沒有取消。

邊界測試要另開新的假設資料庫,重做完整建表及資料,只套用以下改動,再執行更正查詢。測試改動不可用於正式系統。

新假設副本內的邊界改動
UPDATE bookings SET status='draft';
改動後再執行更正查詢的實際結果
取消百分比
NULL(未知或未能定義)
下載可編輯 CSV ↓

此規則未計仍未完成的將來預約;按預約月份或建立月份分析須另定範圍。

以上錯誤、更正及邊界結果都已在 SQLite 執行,並與另行編寫的預期資料逐行核對。證據只適用於這組假設條件,未測其他資料庫、正式效能或你的現有資料結構。

相關資源