我想写一个查询,从下表(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