繁体   English   中英

使用子查询连接表 + SUM mySQL 中的 function

[英]Join table with a subquery + SUM function in mySQL

这是提示和我正在使用的代码。 “查找所有项目的工作时间超过 20 小时的女性员工的姓名”

SELECT employee.ssn, employee.first_name, employee.last_name
FROM employee
WHERE employee.sex='F' AND employee.ssn IN (
    SELECT working_hour.ssn
    FROM working_hour
    GROUP BY working_hour.ssn
    HAVING SUM(working_hour.work_hour) > 20)
ORDER BY employee.first_name, employee.last_name;

现在我希望 output 包含按 employee.ssn 分组的 SUM(working_hour.work_hour) 但我似乎无法找到正确的代码来执行此操作。

PS:是不是和working_hour表有复合键有关系?

如果您想访问子查询中的字段,那么我会使用连接重新表述:

SELECT e.ssn, e.first_name, e.last_name, wh.total_hours
FROM employee e
INNER JOIN
(
    SELECT ssn, SUM(work_hour) AS total_hours
    FROM working_hour
    GROUP BY ssn
    HAVING SUM(work_hour) > 20
) wh
    ON wh.ssn = e.ssn
WHERE e.sex = 'F'
ORDER BY e.first_name, e.last_name;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM