是这样的。我现在有一个表Test 
字段信息如下:
client    server 
19.2.3    12.13
19.2.3    12.14
19.2.4    12.13
19.2.4    12.14
19.2.5    12.13
19.2.5    12.13
我现在需要统计一下 在这个表中相同的client的时候其server是不同的
像这样的记录共有多少条?
像上面的话 19.2.3与19.2.4就是属于这种情况了。 应该是两条
那么请问一下这样的SQL语句 应该如何写呢?
我写了一个是这样的:select count(*) from Test as a,Test as b where a.client = b.client and a.server<> b.server
group by a.client
小数据量还行如果是大数据量的话就死了。
请问一下如何写SQL语句呢?在线等非常感谢!

解决方案 »

  1.   

    SELECT client,COUNT(DISTINCT server) AS server_count
    FROM tb
    GROUP BY client;
      

  2.   

    SELECT client,COUNT(DISTINCT server) AS server_count
    FROM tb
    GROUP BY client
    HAVING COUNT(DISTINCT server) > 1;
      

  3.   

    SELECT client,COUNT(DISTINCT server) AS server_count
    FROM tb GROUP BY client;
      

  4.   

    TestAclient  server 
    19.2.3  12.13
    19.2.3  12.14
    19.2.4  12.13
    19.2.4  12.14
    19.2.5  12.13
    19.2.5  12.18TestBclient  server 
    19.2.3  12.19
    19.2.3  12.14
    19.2.4  12.13
    19.2.4  12.14
    19.2.5  12.13
    19.2.5  12.13
    找出A中存在,B中不存在的记录
    select * from TestA
    where not exists (select 1 from TestB where client=testa.client and server = testa.server)