Sql 服务器结果返回重复项和不同项,其他内容无效
Sql server results returning duplicates and distinct and other things are not working
我有一个 table,其中包含一个外键 DOCCCOIssuesId,该列多次具有相同的值。现在最终使记录唯一的是另一个列 AcceptedByNTID 不为空。
由于某些原因,我有一些重复的条目导致了问题。 (是的,最终需要解决这个问题以确保唯一的行)
现在我有结果
DOCCCOIssuesId AcceptedByNTID
1 abc
14 def
14 hij
15 abc
16 def
16 abc
所以我只想 select 在 AcceptedByNTID 中有值的记录,但我只想获取一个不同的 DOCCCOIssuesId 而不是任何给定的 DOCCCOIssuesId 中的 > 1
select
DOCCCOIssuesId
,AcceptedByNTID
FROM
[ESO].[ESO].[DOCCCOIssuesResponse] dir
where
dir.AcceptedByNTID IS NOT NULL
我尝试了 distinct、subquery、group by、having、max,只是没搞清楚。
我想要的结果
DOCCCOIssuesId AcceptedByNTID
1 abc
14 def
15 abc
16 def
使用group by
:
select MIN(DOCCCOIssuesId), AcceptedByNTID
from [ESO].[ESO].[DOCCCOIssuesResponse] dir
where dir.AcceptedByNTID IS NOT NULL
group by AcceptedByNTID;
min()
(或max()
)是该列的任意值。
编辑:
我误解了这个问题。你似乎只想要 select distinct
:
select distinct DOCCCOIssuesId, AcceptedByNTID
from [ESO].[ESO].[DOCCCOIssuesResponse] dir
where dir.AcceptedByNTID IS NOT NULL;
将您的 DOCCCOIssuesId
分组并得到其中的 MIN
。
SELECT MIN(DOCCCOIssuesId)
, AcceptedByNTID
FROM [ESO].[ESO].[DOCCCOIssuesResponse] dir
WHERE dir.AcceptedByNTID IS NOT NULL GROUP BY DOCCCOIssuesId, AcceptedByNTID
我有一个 table,其中包含一个外键 DOCCCOIssuesId,该列多次具有相同的值。现在最终使记录唯一的是另一个列 AcceptedByNTID 不为空。
由于某些原因,我有一些重复的条目导致了问题。 (是的,最终需要解决这个问题以确保唯一的行) 现在我有结果
DOCCCOIssuesId AcceptedByNTID
1 abc
14 def
14 hij
15 abc
16 def
16 abc
所以我只想 select 在 AcceptedByNTID 中有值的记录,但我只想获取一个不同的 DOCCCOIssuesId 而不是任何给定的 DOCCCOIssuesId 中的 > 1
select
DOCCCOIssuesId
,AcceptedByNTID
FROM
[ESO].[ESO].[DOCCCOIssuesResponse] dir
where
dir.AcceptedByNTID IS NOT NULL
我尝试了 distinct、subquery、group by、having、max,只是没搞清楚。
我想要的结果
DOCCCOIssuesId AcceptedByNTID
1 abc
14 def
15 abc
16 def
使用group by
:
select MIN(DOCCCOIssuesId), AcceptedByNTID
from [ESO].[ESO].[DOCCCOIssuesResponse] dir
where dir.AcceptedByNTID IS NOT NULL
group by AcceptedByNTID;
min()
(或max()
)是该列的任意值。
编辑:
我误解了这个问题。你似乎只想要 select distinct
:
select distinct DOCCCOIssuesId, AcceptedByNTID
from [ESO].[ESO].[DOCCCOIssuesResponse] dir
where dir.AcceptedByNTID IS NOT NULL;
将您的 DOCCCOIssuesId
分组并得到其中的 MIN
。
SELECT MIN(DOCCCOIssuesId)
, AcceptedByNTID
FROM [ESO].[ESO].[DOCCCOIssuesResponse] dir
WHERE dir.AcceptedByNTID IS NOT NULL GROUP BY DOCCCOIssuesId, AcceptedByNTID