1. 程式人生 > >distinct 多列

distinct 多列

 create   table   #tem  
  (  
      co1   varchar(10),  
      co2   int  
  )  
   
  insert   into   #tem   values('A',1)  
  insert   into   #tem   values('A',2)  
  insert   into   #tem   values('A',3)  
  insert   into   #tem   values('A',4)  
  insert   into   #tem   values('B',1)  
  insert   into   #tem   values('B',2)  
  insert   into   #tem   values('C',1)  
  insert   into   #tem   values('D',2)  
   
  --會生成以下結果  
  co1   co2  
  A         1  
  A         2  
  A         3  
  A         4  
  B         1  
  B         2  
  C         1  
  D         2  
   
  --怎麼樣得到以下資料?  
  co1       co2  
  A           1  
  B           1  
  C           1  
  D           2  

select   co1,min(co2)   from   #tem   group   by   co1

    select   co1,co2   from   #tem   A   Where   co2   In   (Select   Min(co2)   from   #tem   Where   co1=A.co2)  

如果想的到最小的,可以用樓上寫的或者是我寫的  
   
  select   aa,min(bb)   from   #test   group   by   aa  
   
  select   co1,co2   from   #tem   A   Where   co2   In   (Select   Min(co2)   from   #tem   Where   co1=A.co1)  
   
   
  如果是想得到第一個,可以這樣:  
   
  select   co1,co2   from   #tem   A   Where   co2   In   (Select   TOP   1   co2   from   #tem   Where   co1=A.co1)