查询数据大于两列总和的行

时间:2018-04-19 01:11:21

标签: sql oracle plsql

我对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;

1 个答案:

答案 0 :(得分:1)

如果值全部在一行中,则不需要聚合函数:

SELECT COUNT(*)
INTO employee_total_pay_greater
FROM EMPLOYEE
WHERE (SALARY + COALESCE(COMMISSION, 0))) > 2900;