我想寫一個查詢,從下表(valid_columns)刪除重複的記錄,並保留只有儘可能最低的[訂單]號碼的記錄。SQL刪除子查詢,刪除重複記錄
例如,在下表中,我想刪除重複的行,區域2,3和作業3,並保留記錄的最低可能[順序]。
E.g.輸入表,valid_columns看起來是這樣的:
name col_order
-------------
job 1
job 3
status 2
cust 2
county 1
state 1
region 1
region 2
region 3
so 4
所需的輸出:
name col_order
-------------
job 1
status 2
cust 2
county 1
state 1
region 1
so 4
我試圖修復一個錯誤,我想不通的SQL。目前它使用刪除語句和子查詢。目前使用的查詢是這樣的:
- 3)刪除重複列
DELETE
FROM valid_columns
WHERE NOT (col_order = (SELECT TOP 1 col_order
FROM valid_columns firstValid
WHERE name = firstValid.name
AND col_order = firstValid.col_order
ORDER BY col_order ASC))
但是,這僅返回以下,這是不正確的:
name col_order
-------------
job 1
county 1
state 1
region 1
非常感謝
在where子句中使用相關的子查詢時,我有點困惑,你能簡單地展開你的答案。它看起來會起作用。 – bobbo