很急的sql啊,100分,谢谢大家了,在线等
有表
ID FullName Price AirLine
1 中国国际航空公司 240 北京-太原
2 海南航空公司 300 北京-太原
3 中国东方航空公司 350 北京-太原
4 中国东方航空公司 590 北京-太原
5 中国东方航空公司 590 北京-太原
6 中国东方航空公司 410 北京-太原
7 中国国际航空公司 240 北京-太原
8 海南航空公司 300 北京-太原
9 中国东方航空公司 270 北京-太原
10 中国国际航空公司 280 北京-烟台
11 山东航空公司 480 北京-烟台
12 中国东方航空公司 550 北京-烟台
13 中国国际航空公司 590 北京-烟台
14 中国国际航空公司 690 北京-烟台
15 中国国际航空公司 280 北京-烟台
16 中国南方航空公司 310 北京-烟台
17 中国东方航空公司 410 北京-烟台
18 山东航空公司 410 北京-烟台
结果
18 山东航空公司 410 北京-烟台
9 中国东方航空公司 270 北京-太原
1 中国国际航空公司 240 北京-太原
16 中国南方航空公司 310 北京-烟台
我想取得每一个航空公司最低的票价
------解决方案--------------------select * from table a
where not exists(select 1 from table where FullName = a.FullName and Price < a.Price)
樓主的結果是不是少了 "海南航空公司 "
------解决方案--------------------select a.* from t
where Price in(select min(price) from t group by FullName)
------解决方案--------------------select * FROM table as a where
not exists(select 1 from table where FullName = a.FullName and AirLine = a.AirLine and Price < a.Price)
或者:
SELECT a.* FROM table as a
INNER JOIN (select FullName,AirLine,MIN(Price) AS Price from table) AS b
ON b.FullName = a.FullName and b.AirLine = a.AirLine and b.Price = a.Price
------解决方案--------------------通常使用的三種方法,建議使用第三種
--方法一
Select * From 表 A Where Not Exists(Select Price From 表 Where FullName = A.FullName And Price < A.Price)
--方法二
Select * From 表 A Where Price = (Select Min(Price) From 表 Where FullName = A.FullName)
--方法三
Select A.* From 表 A
Inner Join
(Select FullName, Min(Price) As Price From 表 Group By FullName) B
On A.FullName = B.FullName And A.Price = B.Price