0

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

2 回答 2

1

正如您所说,您需要找出平均值的最小值和平均值的最大值,现在您正在做的是在一列上分组,这意味着 Avg(Bid) 将只返回一个值。而你正在做的事情只有在用两列完成时才有意义,

例如,您想知道每天平均数的最小值。您需要再确定一列,以找出平均值的最大值和最小值。在我的示例中,我使用日期作为第二列。查询会像。

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
于 2013-07-25T07:15:33.540 回答
1

尝试以下查询来完成任务

SELECT ((max(bid)+min(bid))/2) as average FROM bid WHERE bid_id=:bid_id GROUP BY bid_id

因为预定义的 avg 函数只接受一个参数,可能是表中的列或单个值。所以你必须像上面一样找到出价的最小值和最大值的平均值

于 2013-07-25T07:40:14.497 回答