Sql server 仅选择唯一值

Sql server 仅选择唯一值,sql-server,select,Sql Server,Select,塔布斯是 ID Count 1 30 2 30 3 10 4 15 5 10 6 25 我想要一个能给我答案的问题 4 15 6 25 在结果中,应选择以下内容: SELECT t.ID, t.[Count] FROM Table t WHERE (SELECT COUNT(*) FROM Table t1 WHERE t1.[Count] = t.[Count]) = 1 请注意,您应该在表[Count]上有一个真正的索引。下

塔布斯是

ID  Count
1    30
2    30
3    10
4    15
5    10
6    25
我想要一个能给我答案的问题

4    15
6    25

在结果中,应选择以下内容:

SELECT t.ID, t.[Count] 
FROM Table t 
WHERE 
   (SELECT COUNT(*) FROM Table t1 WHERE t1.[Count] = t.[Count]) = 1

请注意,您应该在表[Count]上有一个真正的索引。

下面应该选择您想要的:

SELECT t.ID, t.[Count] 
FROM Table t 
WHERE 
   (SELECT COUNT(*) FROM Table t1 WHERE t1.[Count] = t.[Count]) = 1
请注意,您应该在表[Count]上有一个索引。

您可以使用的索引不存在:

您可以使用“不存在”:


与COUNT DISTINCT一起使用,以限制结果:

SELECT [Id], [Count]
FROM MyTable
WHERE [Count] IN (
    SELECT [Count]
    FROM MyTable
    GROUP BY [Count]
    HAVING COUNT(DISTINCT [Count]) = 1
)

与COUNT DISTINCT一起使用,以限制结果:

SELECT [Id], [Count]
FROM MyTable
WHERE [Count] IN (
    SELECT [Count]
    FROM MyTable
    GROUP BY [Count]
    HAVING COUNT(DISTINCT [Count]) = 1
)

您也可以使用分组语句来完成

SELECT MIN(ID), Count
FROM Table
GROUP BY Count
HAVING COUNT(*) = 1

您也可以使用分组语句来完成

SELECT MIN(ID), Count
FROM Table
GROUP BY Count
HAVING COUNT(*) = 1

请注意,这里还应该有一个计数索引。@ThorstenDittmar:提到索引会很有帮助。但是,这取决于这个查询是只使用一次还是经常使用,以及表有多大。我在回答中提到了它-谁知道它是否被读取:-是的,这是一个多久执行一次的问题,但在任何情况下都会有伤害吗?谢谢,蒂姆,我知道-但这是一个简单的表,PK可能在ID上。我知道许多包含许多列的索引会显著降低查找速度,但在这里,我想它加快查找速度的速度要比减慢插入速度的速度快得多。@ThorstenDittmar:对不起,我刚刚删除了我的只包含链接的注释。为了完整起见,我的观点是:如果我要在我需要查询的每一列上添加一个索引,我就必须在所有内容上添加一个索引。请注意,这里也应该有一个计数索引。@ThorstenDittmar:提到索引会很有帮助。但是,这取决于这个查询是只使用一次还是经常使用,以及表有多大。我在回答中提到了它-谁知道它是否被读取:-是的,这是一个多久执行一次的问题,但在任何情况下都会有伤害吗?谢谢,蒂姆,我知道-但这是一个简单的表,PK可能在ID上。我知道许多包含许多列的索引会显著降低查找速度,但在这里,我想它加快查找速度的速度要比减慢插入速度的速度快得多。@ThorstenDittmar:对不起,我刚刚删除了我的只包含链接的注释。为了完整性起见,我的观点是,如果我要在需要查询的每一列上添加一个索引,我就必须在每一列上添加一个索引。