我的 MySQL 知识 = 初学者
Columns: MonthlyIncome and MonthlyDebt
Table: customer
期望输出:显示 MonthlyIncome - MonthlyDebt 之差的 MIN、MAX 和 AVE。 MonthlyIncome
- MonthlyDebt
= NetIncome
。
我失败的尝试来自研究和实验:
- 获取两列之间的差异并将它们放在别名列中。
- 从别名列 (NetIncome) 中选择以显示 MIN、MAX 和 AVE。
失败的查询:
SELECT MonthlyIncome - MonthlyDebt AS NetIncome
FROM (
SELECT MIN(NetIncome) AS MinNet,
MAX(NetIncome) AS MaxNet,
AVE(NetIncome) AS AveNet
FROM customers
) AS subqueryalias
失败产生一个错误:
Error Code: 1054. Unknown column 'NetIncome' in 'field list'
最佳答案
您在外部查询中定义了 NetIncome
,但在内部查询中引用了它,这是不行的。首先执行内部查询。我什至不会使用别名,只需在所有聚合函数中使用表达式:
select min(MonthlyIncome - MonthlyDebt), max(MonthlyIncome - MonthlyDebt), avg(MonthlyIncome - MonthlyDebt)
from customers
关于mysql - 从别名列显示 MIN、MAX 和 AVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479160/