很急的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