如何在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