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'

ウィンドウ関数(over()一部)は、SQL Server(使用しているようです)を含むすべての最新のDBMSでサポートされています

于 2013-02-12T21:32:28.907 に答える