一
年 產品
銷量 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='南京')