这是表结构
捐赠者(捐赠者ID,姓名)
捐赠(ID,捐赠ID,金额)
这是我的查询:
SELECT donor.name, SUM(donation.amount) "Total"
FROM donor, donation
WHERE donor.donorID = donation.donorID
AND SUM(donation.amount) > 1000;
GROUP BY donor.name
ORDER BY SUM(donation.amount) DESC;
Run Code Online (Sandbox Code Playgroud)
这是错误:
ORA-00934:此处不允许组功能00934. 00000 - "此处不允许组功能"
删除总和(捐赠)时没有错误<1000我如何整合它没有错误?请帮忙.
您不能在where子句中放置聚合函数.你需要一个having条款:
SELECT donor.name, SUM(donation.amount) "Total"
FROM donor, donation
WHERE donor.donorID = donation.donorID
GROUP BY donor.name
HAVING SUM(donation.amount) > 1000
ORDER BY SUM(donation.amount) DESC;
Run Code Online (Sandbox Code Playgroud)
但是,您应该学会使用正确的join语法和表别名:
SELECT d.name, SUM(dn.amount) as "Total"
FROM donor d JOIN
donation dn
ON d.donorID = dn.donorID
GROUP BY d.name
HAVING SUM(dn.amount) > 1000
ORDER BY SUM(dn.amount) DESC;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2568 次 |
| 最近记录: |