mysql - 获取mysql组中的最新日期

标签 mysql greatest-n-per-group

我希望了解上次为每位员工举行 session 的时间,但没有快速完成,这是我的布局

Meetings
id staff    date       notes <br>
1    46  2016-01-01    Test notes <br>
2    46  2016-02-28    test note<br>
3    56  2017-01-05    
4    56  2017-02-15

staff
id  first_name   last_name<br>
46  test 1        user1 <br>
56  test 2        user2

这是我的查询,但它不会告诉我他们最后一次开会的日期

SELECT
staff.first_name,
staff.last_name,
meetings.`date`,
meetings.notes,
meetings.`type`,
meetings.id
FROM
meetings
Inner Join staff ON meetings.staff = staff.id
GROUP BY
meetings.staff

最佳答案

您可以将 GROUP BY 子句与 MAX 函数结合使用来获得所需的结果,例如:

SELECT s.id, s.first_name, s.last_name, MAX(m.date)
FROM staff s LEFT JOIN meetings m ON s.id = m.staff
GROUP BY s.id, s.first_name, s.last_name
ORDER BY s.id;

更新 如果您不想包含尚未参加过任何 session 的员工,那么您可以使用内部加入,例如:

SELECT s.id, s.first_name, s.last_name, MAX(m.date)
FROM staff s JOIN meetings m ON s.id = m.staff
GROUP BY s.id, s.first_name, s.last_name
ORDER BY s.id;

关于mysql - 获取mysql组中的最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077081/

相关文章:

mysql - 使用附加搜索条件查找每组链接表中字段的总和

php - Opencart 运输邮政编码 订购前检查

sql - 在其中一个连接上选择具有最大值的记录

sql - FILTER 中不允许使用聚合函数

插入后Python SQLAlchemy获得返回ID

sql - 获取具有 max(timestamp) 的行

sql - Postgresql 获取每组多列的最大值

mysql - 从用户、帖子和评论表中获取所有带有评论数和用户的帖子

mysql - 如何在不使用大型 ResultSet 的情况下检查一个字符串是否是另一个字符串的子字符串?

MySQL 选择、加入、比较日期失败