如何在SQL中不显示计数列

如何在SQL中不显示计数列,sql,sql-server,select,count,group-by,Sql,Sql Server,Select,Count,Group By,我的问题是: SELECT ID , COUNT(STATUS) FROM tablename WHERE STATUS = 'GREEN' GROUP BY ID HAVING COUNT(STATUS) > 3; 我需要结果以独占方式显示ID列,而不显示每行的计数 只需将其从选择列表中删除即可: select ID -- count(STATUS) removed here from TABLENAME where STATUS = '

我的问题是:

SELECT  ID ,
        COUNT(STATUS)
FROM    tablename
WHERE   STATUS = 'GREEN'
GROUP BY ID
HAVING  COUNT(STATUS) > 3;

我需要结果以独占方式显示ID列,而不显示每行的计数

只需将其从选择列表中删除即可:

select   ID -- count(STATUS) removed here
from     TABLENAME
where    STATUS = 'GREEN' 
group by ID
having   count(STATUS) > 3

我还想在显示该列时添加“as[Count]”,以便向该列添加标签。

您可以使用包装查询:

SELECT sub.ID FROM (
SELECT  ID ,
        COUNT(STATUS)
FROM    tablename
WHERE   STATUS = 'GREEN'
GROUP BY ID
HAVING  COUNT(STATUS) > 3) AS sub;
在MS SQL中(SSMS)

上面发布的子查询对于复杂的查询非常有用 或 您还可以使用CTE-通用表表达式, 像


CTE用于简化问题并将其转换为子查询(如果可能)。

只需从
选择
中删除
计数(状态)
。哇,这是一种复杂的实现方法。这帮助我解决了另一个问题,我需要查询的ID,而不需要查询!我不熟悉使用StackOverflow。请指导我,如果我的语法或我张贴的东西不符合标准。谢谢如果我能帮忙的话,请竖起大拇指或投赞成票。
SELECT sub.ID FROM (
SELECT  ID ,
        COUNT(STATUS)
FROM    tablename
WHERE   STATUS = 'GREEN'
GROUP BY ID
HAVING  COUNT(STATUS) > 3) AS sub;
SELECT ID  --,COUNT(STATUS) as [Status Count]
FROM    tablename
WHERE   STATUS = 'GREEN'
GROUP BY ID
HAVING  COUNT(STATUS) > 3;
with Status_count as 
(
SELECT ID, COUNT(STATUS) as [Status Count]
FROM    tablename
WHERE   STATUS = 'GREEN'
GROUP BY ID
HAVING  COUNT(STATUS) > 3
)
select ID
from Status_count