[英]Select full row based on MAX value and GROUP BY
這是場景。 我有員工,他們每年對不同類別進行評估。 我需要:每個類別的最新評估的整行。
例:
員工表:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.