在SQL中获得平均低和高出价

时间:2013-07-25 07:06:57

标签: sql

我对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");

2 个答案:

答案 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函数只接受一个参数,该参数可能是来自表或单个值的列。所以你必须找到如上所述的出价最小值和最大值的平均值