我在表格中有以下数据。
Id Name
1 Abc
2 Abc
3 Xyz
4 Xyz
5 def
6 def
我希望从查询中获得以下结果
Id Name
1 Abc
2 Xyz
3 def
我想避免名称列中的重复项。
非常感谢任何帮助。
Select distinct
id, name
from table A
不起作用,因为ID具有不同的值。
答案 0 :(得分:2)
改为使用组。
select
min(id), [name]
from
tableA
group by [name]
请注意,在您的示例中,与Xyz
对应的ID为3和4,因此只有在您破坏表的完整性时才能获得Xyz
旁边的2。如果您只是在ID旁边寻找一个自动编号,您可以这样做:
SELECT row_number() OVER (ORDER BY min(id)) id,
name
FROM tableA
group by name
答案 1 :(得分:0)
您可以使用以下方式获取特定结果:
select row_number() over (order by min(id)) as id, name
from table A
group by name;
重新编号行似乎很奇怪,但row_number()
会这样做。