程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql查詢語句,求每個分組中的最大值實例

sql查詢語句,求每個分組中的最大值實例

編輯:關於SqlServer


年           產品       銷量  
  2005       a             700  
  2005       b             550  
  2005       c             600  
  2006       a             340  
  2006       b             500  
  2007       a             220  
  2007       b             350  
   
  我要得到  
  2005       a           700  
  2006       b           500  
  2007       b           350  
  怎麼做?  

select   *   from   tb   a   where   not   exists(select   *   from   tb   where   年=a.年   and   銷量>a.銷量)    
   
  --or:  
  select   *   from   tb   a   inner   join   (select   年,max(銷量)   as   銷量   from   tb   group   by   年)b  
  on   a.年=b.年   and   a.銷量=b.銷量  



表結構:
id carId dateChange
1 001 2007-5-1
2 001 2007-5-2
3 002 2007-9-1
4 002 2007-9-9
需要得到每種carId中,dateChange最大的那條記錄,對於現在這幾條記錄來說,就是要得到第2條和第四條。
謝謝!!!


select
t.*
from
表 t
where
not exists(select 1 from 表 where carId=t.carId and dateChange>

;t.dateChange)

三 自鏈接查詢

以前只是聽說過 表查詢的自連接,一直沒有用過
今天突然看百度知道上一個網友在問一個查詢問題
 
表名:車過站表(passStation)
字段 車次 順次 站點
        110    1     上海
        110    2     南京
         112   1     北京
         110    3    浙江
         110    4    江蘇
。。。。。。。。。。。。。
假如要查詢經過南京和江蘇的車次
可以通過自連接來解決
 
select r1.checi from test r1,test r2
where r1.checi=r2.checi and(
r1.chezhan='江蘇' and r2.chezhan='南京')  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved