我有两个桌子
例如来自T1
----------------------
ID || Operation Name |
----------------------|
101 || QA |
----------------------
来自T 2的样本
----------------------------------------
ID || Employee ID || Employee || Audit |
----------------------------------------
101 || 505788 || Marley || 50 |
230 || 5487525 || Smith || 100 |
-----------------------------------------
我应该在条件下返回每个操作名称及其自身的审计平均值(如果> = 90为“好”-如果<90且> = 40为“中”-如果<40为“差”),并且阻止任何平均(0)的审核
桌子应该是这样的
---------------------------------------------------
Operation Name || Operation ID || Audit Evaluation |
----------------------------------------------------
Maintenance || 190 || Medium |
---------------------------------------------------
答案 0 :(得分:0)
SELECT
t1.name AS operation_name,
t1.id AS operation_id,
CASE
WHEN AVG(t2.audit) >= 90 THEN 'Good'
WHEN AVG(t2.audit) >= 40 THEN 'Medium'
ELSE 'Bad'
END AS audit_evaluation
FROM
t1
JOIN
t2 ON t1.id = t2.id
GROUP BY t1.id, t1.name
HAVING AVG(t2.audit) > 0
id
上联接两个表id
分组HAVING
过滤出AVG = 0
个组AVG
CASE
子句构建各节