在一个sql查询中,是否可以在or运算符中组合having和where子句?
也许不是最好的例子,但你会想到:
从employee表中选择为hr(使用where子句)或向所有员工支付超过25000(使用having子句)的部门。那么我们如何在下面的查询中得到or条件呢?或者最好将查询分为两个查询。
SELECT dept, SUM (salary)
FROM employee
WHERE dept = "HR"
GROUP BY dept
HAVING SUM (salary) > 25000
3条答案
按热度按时间lh80um4z1#
下面的方法将起作用-您不必在having子句中指定聚合
但你的说法“给所有员工的工资超过25000”并不清楚。你想要什么
员工人均收入超过25000的部门,或者员工总收入超过25000的部门?
上面的查询提供了第二个选项,因为它最接近原始查询
vd2z7a6w2#
也许你想要一个薪水超过25000英镑的部门。
gcuhipw93#
Package
GROUP BY
在派生表中分开。然后对其结果应用条件:或者,“给所有员工的工资超过25000”,意味着没有一个部门员工的工资低于25000?