1

我正在尝试返回给定数量的服务器名称,然后计算返回的数量。例如:

select servername, count(distinct servername) number
from TABLE
where [target] = 'blah'
group by servername

这将返回以下内容:

servername      number
server1         1
server2         1

我试图让“数字”列读取“2”,因为有 2 个不同的服务器名称。这应该非常简单,但我完全不知所措。

4

2 回答 2

3

您可以使用相关子查询:

select distinct servername, 
  (select count(distinct servername) 
   from yourtable
   where target = 'blah') number
from yourtable
where target = 'blah'

请参阅带有演示的 SQL Fiddle

于 2013-02-12T21:29:28.460 回答
0
select servername, 
       count(*) over (partition by servername) as number
from the_table
where [target] = 'blah'

所有现代 DBMS 都支持窗口函数(over()部分),包括 SQL Server(您似乎正在使用)

于 2013-02-12T21:32:28.907 回答