Tsql 组过滤t-sql

Tsql 组过滤t-sql,tsql,Tsql,我的结构如下: cid status 1 T 2 T 1 T 1 T 2 T 3 X 3 T 5 T 如何获取所有状态均为“T”的cid 响应必须注意3被省略,因为它也有一个X状态: 您可以使用带有行数函数的公共表表达式,该函数类似于GROUP BY: 这里有一个提示:您可以使用一个带有行数函数的公共表表达式,该函数类似于GROUP BY: 这是小提琴: cid 1 2 5 WITH CTE AS( SELECT

我的结构如下:

cid status

 1    T
 2    T
 1    T
 1    T
 2    T
 3    X
 3    T
 5    T
如何获取所有状态均为“T”的cid

响应必须注意3被省略,因为它也有一个X状态:


您可以使用带有行数函数的公共表表达式,该函数类似于GROUP BY:


这里有一个提示:

您可以使用一个带有行数函数的公共表表达式,该函数类似于GROUP BY:

这是小提琴:

cid
 1
 2
 5
WITH CTE AS(
   SELECT CID, RN = ROW_NUMBER()OVER(PARTITION BY CID ORDER BY CID)
   FROM tbl
   WHERE NOT EXISTS(
     SELECT NULL FROM tbl t2
     WHERE t2.CID=tbl.CID
     AND Status <> 'T'
   )
)
SELECT CID FROM CTE
WHERE RN = 1