我有这个DDL:
CREATE TABLE [dbo].[FreqLeeds] (
[Id] INT NOT NULL,
[Freq] DECIMAL (18, 5) NOT NULL,
[Text] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
填充表格后,我尝试创建索引:
CREATE UNIQUE INDEX [IX_FreqLeeds_Text] ON [dbo].[FreqLeeds] ([Text])
但create
由于重复值而失败。
如何确定哪些行有重复项以及值是什么?
答案 0 :(得分:1)
您可以使用聚合找到多次出现的文本:
select [Text]
from [dbo].[FreqLeeds]
group by [Text]
having count(*) > 1
如果要查看多次出现的文本的所有行(包含所有列),可以在子查询(或CTE)中使用窗口函数count
并过滤:
select *
from (
select
t.*,
count(*) over (partition by [Text]) cnt
from [dbo].[FreqLeeds] t
) t where cnt > 1;
答案 1 :(得分:1)
您可以尝试以这种方式查询您的表格
Select count(*), [Text]
from [dbo].[FreqLeeds]
group by [Text]
having count(*) > 1