Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql,在进行计算之前,是否有可能得到总数?_Mysql - Fatal编程技术网

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;