跳至內容
Astera Technology

兩個不同路徑配對,為何只計一個?

去重應按真正配對,不按沒分界的拼接字串。

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

準備報表輸入

本例數不重複起點/終點配對。A→BC、AB→C 不同,沒分隔拼起卻都 ABC。先按兩欄去重再數行,事件編號不是配對識別。

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

假設輸入:routes
編號起點終點
1ABC
2ABC
下載可編輯 CSV ↓
完整建表及插入假設資料
CREATE TABLE routes(id INTEGER PRIMARY KEY,source TEXT NOT NULL,destination TEXT NOT NULL); INSERT INTO routes VALUES(1,'A','BC'),(2,'AB','C');

比較錯誤及更正結果

錯誤 SELECT:重現問題
SELECT COUNT(DISTINCT source||destination) AS route_count FROM routes;
錯誤查詢的逐行結果
路徑配對數
1
下載可編輯 CSV ↓
更正 SELECT
SELECT COUNT(*) AS route_count FROM (SELECT DISTINCT source,destination FROM routes);
更正查詢的逐行結果
路徑配對數
2
下載可編輯 CSV ↓

錯誤純量鍵得一條,更正配對得兩條。若標籤可含分隔符,只加分隔符仍要有轉義約定。

用新副本測邊界

在新邊界副本刪全部路徑事件,不重複配對數為零。

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

邊界改動及更正查詢
DELETE FROM routes;
SELECT COUNT(*) AS route_count FROM (SELECT DISTINCT source,destination FROM routes);
邊界查詢的逐行結果
路徑配對數
0
下載可編輯 CSV ↓

A→BC、AB→C 可否當同一觀察路徑?

查看參考答案

不可,端點不同,應計兩條,空輸入則正確回零。

相關資源