Mysql select查询的计算字段出错
此查询给我的错误为1054-where子句中的未知列“totalamount”Mysql select查询的计算字段出错,mysql,sql,Mysql,Sql,此查询给我的错误为1054-where子句中的未知列“totalamount” SELECT (amount1 + amount2) as totalamount FROM `Donation` WHERE totalamount > 1000 我知道我可以通过使用GROUPBY子句并用having子句替换where条件来解决此错误。但除了使用having子句之外,还有其他解决方案吗。如果GROUPBY是唯一的解决方案,那么我想知道为什么我必须使用GROUPBY子句,即使我没有
SELECT (amount1 + amount2) as totalamount
FROM `Donation`
WHERE totalamount > 1000
我知道我可以通过使用GROUPBY子句并用having子句替换where条件来解决此错误。但除了使用having子句之外,还有其他解决方案吗。如果GROUPBY是唯一的解决方案,那么我想知道为什么我必须使用GROUPBY子句,即使我没有使用任何聚合函数
谢谢。不行
在聚合上具有筛选器时,其中筛选器列
看不行
在聚合上具有筛选器时,其中筛选器列
请参见我不希望MySQL给出那个错误消息,但许多其他数据库会这样做。在其他数据库中,可以通过重复列定义来解决此问题:
SELECT amount1 + amount2 as totalamount
FROM Donation
WHERE amount1 + amount2 > 1000
或者可以使用子查询来避免重复:
SELECT totalamount
FROM (
select amount1 + amount2 as totalamount
, *
from Donation
) as SubQueryAlias
WHERE totalamount > 1000
我不希望MySQL给出那个错误消息,但许多其他数据库都会这样做。在其他数据库中,可以通过重复列定义来解决此问题:
SELECT amount1 + amount2 as totalamount
FROM Donation
WHERE amount1 + amount2 > 1000
或者可以使用子查询来避免重复:
SELECT totalamount
FROM (
select amount1 + amount2 as totalamount
, *
from Donation
) as SubQueryAlias
WHERE totalamount > 1000
根据SQL方言的不同,不能将派生列放入where子句中
WHERE (amount1 + amount2) > 1000
而是使用where子句
WHERE (amount1 + amount2) > 1000
根据SQL方言的不同,不能将派生列放入where子句中
WHERE (amount1 + amount2) > 1000
而是使用where子句
WHERE (amount1 + amount2) > 1000
我建议你使用安多玛答案中的一个变体 MySQL允许的是:不要使用它,它不是标准的,几乎任何其他DBMS都不允许它:
SELECT (amount1 + amount2) AS totalamount
FROM Donation
HAVING totalamount > 1000 ;
我建议你使用安多玛答案中的一个变体 MySQL允许的是:不要使用它,它不是标准的,几乎任何其他DBMS都不允许它:
SELECT (amount1 + amount2) AS totalamount
FROM Donation
HAVING totalamount > 1000 ;
重复WHERE子句中的总和。如果我有非常复杂的计算,那么??这只是一个例子,那么我想你最好用group by,让…重复WHERE子句中的求和。如果我有非常复杂的计算,那么??这仅仅是一个例子,然后我想你最好使用groupby和have…我说过我知道如何使用having子句来解决它。我想知道为什么我必须使用GROUPBY子句,即使我没有使用任何聚合函数CREATE view Tot作为选择amount1+amount2作为捐款总额;从Tot中选择*其中totalamount>1000;having子句可以对列和聚合进行过滤。我说过我知道如何使用having子句来解决它。我想知道为什么我必须使用GROUPBY子句,即使我没有使用任何聚合函数CREATE view Tot作为选择amount1+amount2作为捐款总额;从Tot中选择*其中totalamount>1000;having子句可以对列和聚合进行筛选,具体取决于方言?哪种方言允许这样的事情?取决于方言?哪种方言允许这样的事情?