Mysql,在进行计算之前,是否有可能得到总数?
我正试图根据条件进行计算,但我得到一个错误Mysql,在进行计算之前,是否有可能得到总数?,mysql,Mysql,我正试图根据条件进行计算,但我得到一个错误错误代码:1111组函数的使用无效 select sum( price - (price * if(sum(price)>200, 0.5, 0) ) ) from mytables; -- error 我想做的是,如果所有price的总和超过200,那么计算如下price-(price*0.5)否则,price-(price*0) 已更新 如果我们把所有的加起来,我们将得到471,因此条件是真的超过200,所以公式应该是这样的price-(pr
错误代码:1111组函数的使用无效
select sum( price - (price * if(sum(price)>200, 0.5, 0) ) ) from mytables; -- error
我想做的是,如果所有price
的总和超过200,那么计算如下price-(price*0.5)
否则,price-(price*0)
已更新
如果我们把所有的加起来,我们将得到471
,因此条件是真的超过200
,所以公式应该是这样的price-(price*0.5)
,所以答案/输出应该是235.5
以下是我的模式:
我想你可能在找这个:
SELECT SUM(price) * IF(SUM(price) > 200, 0.5, 1.0) FROM mytables;
结果是235.5
我已经使用了简化的表达式<代码>价格-(价格*0)等于价格
,价格-(价格*0.5)
等于0.5*价格
。因此,根据价格
,它要么是价格的1.0倍,要么是价格
的0.5倍
我使用sum()
将所有价格相加。我使用IF()
来计算应用于此总价的系数
我建议为表使用更好的名称。聚合函数不能嵌套。如果所有分数的总和超过200,那么分数是多少?用详细的解释来显示所需的输出。为什么需要求和?每一行似乎都包含一个独特的个体。这里没有分数,score-(score*0)
只是一种说score
的奇特方式,score-(score*0.5)
一种说0.5*score
的奇特方式。对不起@all,我已经更新了我的问题我已经更新了我的问题输出应该是235。5@LearnProgramming当前位置仍不清楚您要计算什么。为了得到你想要的结果,我已经改变了我的答案,但我不确定它是否会一直满足你的要求。
SELECT SUM(price) * IF(SUM(price) > 200, 0.5, 1.0) FROM mytables;