1、题目描述
一张飞机航班表段flight
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| PlanNO | varchar |
| StartyArea | varchar |
| Starttime | date |
| EndArea | varchar |
| Endtime | date |
+---------------+---------+
分别代表航班次数,起飞地点,起飞时间,降落地,降落时间
求从南京出发到北京,同时中途转机至少一次的飞机班次
2、解题思路
老方法,首先假定一张表提取所有信息
select *
from tablename
然后提取题目中条件
-
从南京出发所以,where StartyArea =‘南京’
-
降落到北京,where EndArea=‘北京’
-
因为题目中没说,中转的航班号是否变化,照我坐飞机经验来说一般是不会变化的,所以默认没变。只是出发地和降落会不同,
中转地会作为新的到达地生成一个与降落地同航班号的航班。
然后集合条件组装答案
select s.PlanNO
from (select PlanNO,count(id) sid
from flight
where StartyArea ='南京'
and EndArea='北京'
group by PlanNO) s
where sid >=2;