第一个是employee
桌子,第二个是works_with
桌子
emp_id
是works_with
表中的外键。
我想要做的是找到总销售额超过 100,000 的名字和姓氏。
例如,在第一个表中,emp_id
105 人的总销售额为 110,000。
所以我希望输出是 emp_id 102、104、105(其总销售额超过 100,000)的名字和姓氏。
我尝试了一些嵌套查询但失败了。
失败的代码:
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN(
SELECT works_with.emp_id, sum(total_sales)
FROM works_with
WHERE works_with.total_sales > 100000
GROUP BY works_with.emp_id);
使用时,WHERE-IN
您必须在子查询中仅选择一列,并在不使用的HAVING
子句中使用聚合函数进行比较WHERE
。
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.emp_id IN(
SELECT works_with.emp_id
FROM works_with
GROUP BY works_with.emp_id
HAVING SUM(total_sales) > 100000
)
你也可以用INNER JOIN
得到相同的结果
SELECT employee.first_name, employee.last_name,SUM(total_sales) as total_sales
FROM employee
INNER JOIN works_with ON employee.emp_id = works_with.emp_id
GROUP BY employee.emp_id
HAVING total_sales > 100000
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句