Sql server 计算select查询返回的行数
我需要计算以下查询返回的行数Sql server 计算select查询返回的行数,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我需要计算以下查询返回的行数 select m.Company_id from Monitor as m inner join Monitor_Request as mr on mr.Company_ID=m.Company_id group by m.Company_id having COUNT(m.Monitor_id)>=5 我试过以下方法 select COUNT(*) from ( select m.Company_id from Monitor as
select m.Company_id
from Monitor as m
inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
group by m.Company_id
having COUNT(m.Monitor_id)>=5
我试过以下方法
select COUNT(*) from
(
select m.Company_id
from Monitor as m
inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
group by m.Company_id
having COUNT(m.Monitor_id)>=5)
它在查询分析器中给出了一条错误消息,其中显示以下内容:
Msg 102,第15级,状态1,第7行“')附近的语法不正确
SQL Server要求从
或加入中选择的子查询具有别名
将别名添加到子查询(在本例中为x
):
尝试将整个select包装在括号中,然后对其运行计数(*)
语法错误只是由于缺少子查询的别名:
select COUNT(*) from
(
select m.Company_id
from Monitor as m
inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
group by m.Company_id
having COUNT(m.Monitor_id)>=5) mySubQuery /* Alias */
这将为他提供一组分组的计数的行,而不是返回的总行数。实际上,我没有得到结果的计数。这只是一个madeup名称,你可以随意调用它。我想一个更好的名字应该是[MonitorRequestsWith5OrMoreMonitors],确切地说,如果你喜欢简洁的话:-)有没有考虑过行数?
这对我很有帮助..thnx
select COUNT(*) from
(
select m.Company_id
from Monitor as m
inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
group by m.Company_id
having COUNT(m.Monitor_id)>=5) x
select count(*)
from
(
select m.id
from Monitor as m
inner join Monitor_Request as mr
on mr.Company_ID=m.Company_id group by m.Company_id
having COUNT(m.Monitor_id)>=5
) myNewTable
select COUNT(*) from
(
select m.Company_id
from Monitor as m
inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
group by m.Company_id
having COUNT(m.Monitor_id)>=5) mySubQuery /* Alias */