php - 通过查询获取 MySQL GROUP 中的最后一个

标签 php mysql max

我有一张航类表,正在努力确定每个航类#降落的最后一个城市。

错误的查询是:

SELECT DISTINCT `flight_nmbr`, COUNT(record_id) AS Flights,
MIN(`depart_date_time`) AS `first_flight`,
MAX(`depart_date_time`) AS `last_flight`,
MAX(`location`) AS `current_location`
FROM history 
GROUP BY `flight_nmbr`
HAVING records > 1
ORDER BY MAX(`depart_date_time`) DESC;

此声明将表明最后一个航类(飞机当前所在位置)是温斯顿-塞勒姆或曾斯维尔(MAX City 名称)。

我需要最后一个位置(从 MAX(depart_date_time) 开始的位置),即最后/最近的航类,即亚特兰大和休斯顿。

Microsoft Access 有一个最后的查询函数,但我们正在从 Access 迁移到使用 MySQL 和 PHP。

有人可以帮忙调整这个查询吗?

非常感谢!

最佳答案

您可以将子字符串与 GROUP_CONCAT 技巧一起使用

SELECT DISTINCT flight_nmbr,
 COUNT(record_id) AS Flights,
MIN(depart_date_time) AS first_flight,
MAX(depart_date_time) AS last_flight,
SUBSTRING_INDEX(GROUP_CONCAT(location ORDER BY depart_date_time DESC),',',1) AS current_location
FROM history 
GROUP BY flight_nmbr
HAVING records > 1
ORDER BY MAX(depart_date_time) DESC;

关于php - 通过查询获取 MySQL GROUP 中的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35040047/

相关文章:

java - 执行 SQL 查询来对列表进行排序,而不必将其存储为 java 对象?

mysql存储过程select和update selected

mysql - MySQL中按聚合函数max分组

sql - T-sql每天获取最小值和最大值

php - 在 where 条件中使用括号 ()、星号 *.. 等特殊字符

php - 我们应该或不应该在模型中使用参数吗?

php - MYSQL如何在标签之间搜索特定的词

php - MySQL JOINS : Select one row from child table is condition is met, 否则为 NULL

php - Laravel 仅从相关模型中选择不同的值(多对多关系)

java - 允许更改 key 的最大堆