我对 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");
我对 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");
正如您所说,您需要找出平均值的最小值和平均值的最大值,现在您正在做的是在一列上分组,这意味着 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
尝试以下查询来完成任务
SELECT ((max(bid)+min(bid))/2) as average FROM bid WHERE bid_id=:bid_id GROUP BY bid_id
因为预定义的 avg 函数只接受一个参数,可能是表中的列或单个值。所以你必须像上面一样找到出价的最小值和最大值的平均值