Sql 存在计数(*)

Sql 存在计数(*),sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我正在尝试做如下的事情,它给出了语法错误,请帮助 DELETE FROM table WHERE col1 = 2 AND EXISTS ( SELECT COUNT(*) FROM table WHERE col1 = 3 ) > 2 ; 只有当cout大于2时,我才需要执行删除操作以下内容毫无意义。。。存在(…)>2 在中有两个逻辑条件,即存在,以及>2。删除其中

我正在尝试做如下的事情,它给出了语法错误,请帮助

DELETE FROM table 
WHERE col1 = 2
AND EXISTS ( 
               SELECT COUNT(*) 
               FROM table 
               WHERE col1 = 3
           ) > 2 ; 

只有当cout大于2时,我才需要执行删除操作以下内容毫无意义
。。。存在(…)>2

中有两个逻辑条件,即
存在
,以及
>2
。删除其中一个,如:

DELETE  table 
WHERE   col1  = 2
        AND 
        ( 
        SELECT COUNT(*) 
        FROM table 
        WHERE col1 = 3
        ) > 2

您可能会错过
EXISTS

不清楚您实际想做什么,而且我们理解无效语法并不比理解SQL server更容易

HAVING子句将允许您根据计数筛选结果:

SELECT COUNT(*) 
FROM table 
WHERE col1 = 3
HAVING COUNT(*) > 2
但是,在字里行间,它似乎在试图从表中删除重复项,我会这样做:

DELETE FROM table 
WHERE (id, col1) NOT IN 
    (SELECT 
        id, 
        MAX(col1)
    FROM table
    GROUP BY id
);