跳至內容
Astera Technology

工時未知為何排最少工時清單第一?

未知排已有估算之後,不把它改零。

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

準備報表輸入

本例顯示已有估算由少至多,未知在後,相同按 id。SQLite ASC 通常 NULL 在前,NULLS LAST 才按本例排且保 NULL;報表本身不派工作。

以下記錄及報表規則均為原創假設。在新 SQLite 測試資料庫重做建表,預覽包含此小型例子每張表。

假設輸入:estimates
編號工時
ANULL(未知或沒有)
B2
C5
下載可編輯 CSV ↓
完整建表及插入假設資料
CREATE TABLE estimates(id TEXT PRIMARY KEY,hours INTEGER); INSERT INTO estimates VALUES('A',NULL),('B',2),('C',5);

比較錯誤及更正結果

錯誤 SELECT:重現問題
SELECT id,hours FROM estimates ORDER BY hours,id;
錯誤查詢的逐行結果
編號工時
ANULL(未知或沒有)
B2
C5
下載可編輯 CSV ↓
更正 SELECT
SELECT id,hours FROM estimates ORDER BY hours NULLS LAST,id;
更正查詢的逐行結果
編號工時
B2
C5
ANULL(未知或沒有)
下載可編輯 CSV ↓

錯清單先未知 A,更正 B=2、C=5、A 未知,未知不是觀察到零小時。

用新副本測邊界

全部估算改 NULL,仍是按 id 的全未知清單,不聲稱有最少已知工作。

另開新資料庫重做原建表,才套下列改動及更正查詢。空結果在表內用已標明空結果文字表示,不是假資料行。

邊界改動及更正查詢
UPDATE estimates SET hours=NULL;
SELECT id,hours FROM estimates ORDER BY hours NULLS LAST,id;
邊界查詢的逐行結果
編號工時
ANULL(未知或沒有)
BNULL(未知或沒有)
CNULL(未知或沒有)
下載可編輯 CSV ↓

全 NULL 邊界可證明 A 最省工時嗎?

查看參考答案

不可。A 排先只是按 id 取序,並非較省工時;全部工時仍未知。

相關資源