mysql - 如何使我的 WHERE 子句在 SQL 中运行时不会出现语法错误?

标签 mysql sql

问题提出,

“编写一个查询来显示客户名称以及他们已支付的付款次数,其中支票上的金额大于其平均付款金额。按付款次数的降序对结果进行排序。”

到目前为止我已经,

 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/

相关文章:

c# - SQL命令文本到DataSet的直接方法

python - Python 的 MySQL 模块

mysql - 如何优化包含多个带有多个UNION的子查询的MySQL查询

mysql - SQL 连接 3 个表,按最新的组值分组

php - 使 PHP 网关工作

MySQL 查询 COUNT 不同行

sql - 具有许多相同 ID 的 Django ManyToManyField

Mysql 5.7 无法创建 unix socket 锁定文件

php - WordPress 多站点单独页面

SQL Server : How to replace whitespaces(&nbsp, ASCII)在带数字的字符串中?