问题提出,
“编写一个查询来显示客户名称以及他们已支付的付款次数,其中支票上的金额大于其平均付款金额。按付款次数的降序对结果进行排序。”
到目前为止我已经,
SELECT customerName,
(SELECT COUNT(checkNumber) FROM Payments WHERE
Customers.customerNumber = Payments.customerNumber) AS
NumberOfPayments
FROM Customers
WHERE amount > SELECT AVG(amount)
ORDER BY NumberOfPayments DESC;
但是每次用完时我都会收到语法错误。在这种情况下我做错了什么?
最佳答案
语法错误来自于您的第二个子查询不正确:amount > SELECT AVG(amount)
不起作用。
您可以使用金额>(从付款中选择平均金额(金额))
。
即:完成子查询并将其放在( )之间。
但是这不会达到您想要的效果(而且效率低下)。
现在,由于这不是一个为您做作业的论坛,我将把它留在这里,从而只帮助您解决实际问题:为什么会出现语法错误。继续寻找,你会找到的。没有比搜索和发现自己更好的学习方法了。
关于mysql - 如何使我的 WHERE 子句在 SQL 中运行时不会出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54757632/