鉴于Flight
表:由于航班的数据库,找到最长飞行时间的目的地每个起点城市
我需要找到,每个城市,目的地(S)与最长飞行时间。
我很难与子查询。
我尝试:
SELECT DISTINCT origin_city, dest_city, MAX(actual_time)
GROUP BY origin_city
但我知道这是错误的。任何指导表示赞赏
鉴于Flight
表:由于航班的数据库,找到最长飞行时间的目的地每个起点城市
我需要找到,每个城市,目的地(S)与最长飞行时间。
我很难与子查询。
我尝试:
SELECT DISTINCT origin_city, dest_city, MAX(actual_time)
GROUP BY origin_city
但我知道这是错误的。任何指导表示赞赏
$sql = "SELECT MAX(actual_time) FROM FLIGHTS WHERE origin_city=xxxxx";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $row["dest_city"];
}
将上面的代码包装在一个循环中,因为你需要每个起源城市的目的地城市。
这并不能提供航班时间最长的目的地城市。 –
感谢您的回应,但我确定这不是我们在课堂上学习的SQLite。这个解决方案应该用查询和子查询来完成。不为循环 – dev74
这将产生一个起源城市的列表,目的地城市的航班时间最长。
编辑:新增GROUP BY主查询,ORDER BY /限制子查询消除重复origin_cities。
SELECT
f.`origin_city`,
f.`origin_state`,
f.`dest_city`,
f.`desc_state`,
f.`actual_time`
FROM (
SELECT
`origin_city`,
`origin_state`,
max(`actual_time`) as `max_time`
FROM `Flights`
GROUP BY `origin_city`,`origin_state`
ORDER BY `max_time` DESC) a
JOIN `Flights` f
ON f.`origin_city` = a.`origin_city`
AND f.`origin_state` = a.`origin_state`
AND f.`actual_time` = a.`max_time`
GROUP BY f.`origin_city`,f.`origin_state`
您的尝试对于SQLite 3.7.11或更高版本(DISTINCT是多余的)是正确的。但是对于什么数据库你真的想要答案? –