SQL仅选择没有重复项的记录

时间:2014-11-19 02:28:42

标签: sql sql-server database

我想问一下如何在列中选择那些没有重复的记录,这意味着它只在整列中出现一次。我尝试了下面的查询,其中我将在结果中添加一列来计算此记录的出现次数,然后尝试过滤唯一的过滤器,但我似乎无法使其工作。

Select tab1.[Column 0], Count(*) As NumOfMessage
from tab1 where NumOfMessage = 1 group by tab.[Column 0] 

感谢您的帮助。非常感谢!

2 个答案:

答案 0 :(得分:6)

使用HAVING子句:

SELECT [tab1].[Column 0]
     , COUNT(*) AS [NumOfMessage]
FROM [tab1]  
GROUP BY [tab].[Column 0] 
HAVING COUNT([tab].*) = 1

答案 1 :(得分:4)

我猜是通过"重复"你的意思是[Column 0]中的值只出现一次。

您可以使用窗口函数执行此操作:

select t.*
from (select t.*, count(*) over (partition by [Column 0]) as cnt
      from tab1 t
     ) t
where cnt = 1;