我对SQL很陌生,正在使用一个(我希望很容易)的小型出价工具。
我试图从同一列计算平均低点和高点。我已经设法弄清楚如何使用SQL的MIN,MAX,AVG函数,但我如何进行MIN和MAX的平均值?
这是我正在使用的查询:
$query = $pdo->prepare("SELECT AVG(bid),MIN(bid),MAX(bid) FROM bidding WHERE bid_id=:bid_id GROUP BY bid_id");
答案 0 :(得分:1)
正如您所说,您需要找出平均最小值和平均最大值, 现在你正在做的是在一列上分组,这意味着平均(出价)将只返回一个值。你正在做的事情只有在用两列完成时才有意义
例如,您想知道每天的平均分数。您需要确定另一个列,您要在哪个基础上找出平均最大值和最小值。在我的例子中看到我使用Date作为第二列。查询将会像。
Select Max(MAx_Bid),Min(Min_Bid),Min(Avg_Bid),Max(Avg_Bid) FROM
(SELECT AVG(bid) Avg_Bid,MIN(bid) Mix_Bid,MAX(bid) max_bid FROM bidding WHERE bid_id=:bid_id GROUP BY bid_id,Days_Date(Dummy column))A
答案 1 :(得分:1)
尝试以下查询来完成任务
SELECT ((max(bid)+min(bid))/2) as average FROM bidding WHERE bid_id=:bid_id GROUP BY bid_id
因为预定义的avg函数只接受一个参数,该参数可能是来自表或单个值的列。所以你必须找到如上所述的出价最小值和最大值的平均值