php - 根据 MA​​X 值和 GROUP BY 选择整行

标签 php mysql select group-by max

这是场景。我有员工,他们每年对不同类别进行评估。我需要:每个类别的最新评估的整行。

例子:

员工表:

EmpID  Name
454    John

评估表:

id EmpID  Category  EvalDate     Note
1  454       A      2016-01-01   Excellent
2  454       A      2017-02-15   Not so good
3  454       B      2016-01-01   Poor
4  454       B      2017-02-01   Good

我需要一个返回每个类别的最新评估(整行)的查询:

EmpID  Category  EvalDate     Note
454       A      2017-02-15   Not so good
454       B      2017-02-01   Good

到目前为止我的查询:

SELECT 
    evals.EmpID,
    evals.Category,
    evals.Note,
    MAX(evals.EvalDate) as LatestEval
FROM
    evals
WHERE 
    evals.EmpID = 454
GROUP BY
    evals.Category

不幸的是,这会返回每个类别的最新日期,但会返回旧评估中的注释字段。

最佳答案

你可以试试这个:

SELECT
    evals.EmpID,
    evals.Category,
    evals.Note,
    evals.EvalDate
FROM Employee emp
JOIN Evals evals
ON emp.EmpID = evals.EmpID
AND eval.EvalDate = 
    (SELECT MAX(EvalDate) 
    FROM Evals a 
    WHERE a.Category = evals.category 
        AND a.EmpID = emp.EmpID GROUP BY e.EmpID,e.Category)
GROUP BY evals.EmpID,evals.Category

关于php - 根据 MA​​X 值和 GROUP BY 选择整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47360391/

相关文章:

php - 未定义的属性:DOMDocument::$tagName

php - 即使我添加了缓存清除代码,缓存也没有清除

mysql - 第一个 SUM 为零的 2 个日期之间 SUM 增加/减少的百分比

html - 在 html 中禁用/只读选择标签

php - 如何在laravel http客户端api调用中分离基本URL和端点?

php - Yii2 应用程序部署后重定向太多次错误

mysql - 如何在没有密码提示的情况下执行 mysqldump?

mysql - 如何使用不级联删除其子项的外键创建 Django 模型?

按列索引在Numpy数组的每一行中选择一个元素

c# - 如何在数据表中选择不同的行并将其存储到数组中