我对SQL / PLSQL很陌生,并且很难想到如何执行此特定查询。
我想从表格中选择员工总数(工资和佣金总和)大于2900的人数。
我知道您不能直接将聚合函数放在WHERE子句中。我在下面尝试了这个,虽然它没有抛出错误,但也没有给出正确的结果。
在SQL中,如何选择sum(x + y)>的记录数。 Z'
DECLARE
employee_total_pay_greater NUMBER;
BEGIN
SELECT COUNT(*)
INTO employee_total_pay_greater
FROM EMPLOYEE
WHERE (SELECT SUM(SALARY + NVL(COMMISSION, 0))
FROM EMPLOYEE) > 2900;
DBMS_OUTPUT.PUT_LINE(employee_total_pay_greater);
END;
答案 0 :(得分:1)
如果值全部在一行中,则不需要聚合函数:
SELECT COUNT(*)
INTO employee_total_pay_greater
FROM EMPLOYEE
WHERE (SALARY + COALESCE(COMMISSION, 0))) > 2900;