MySQL中的AVG()函數(shù)是一個(gè)用于計(jì)算列中數(shù)值平均值的聚合函數(shù)。它可以應(yīng)用于任何數(shù)值數(shù)據(jù)類型的列,包括INT、FLOAT、DECIMAL等。
SELECT AVG(column_name) FROM table_name;
上面的語(yǔ)句將返回表中特定列(column_name)中所有值的平均值。你也可以對(duì)多個(gè)列使用AVG函數(shù):
SELECT AVG(column_name1), AVG(column_name2) FROM table_name;
AVG()函數(shù)返回一個(gè)DECIMAL類型的值,其精度由數(shù)據(jù)類型和列中值的精度決定。可以使用ROUND()函數(shù)來(lái)控制平均值的小數(shù)位數(shù):
SELECT ROUND(AVG(column_name), 2) FROM table_name;
上面的查詢將返回一個(gè)保留2位小數(shù)的平均值。
AVG()函數(shù)還可以與GROUP BY和HAVING子句一起使用,以計(jì)算多個(gè)組中每組的平均值:
SELECT category, AVG(price) FROM products GROUP BY category HAVING AVG(price) >100;
上面的查詢將返回每個(gè)產(chǎn)品類別的平均價(jià)格,并過(guò)濾出平均價(jià)格大于100的類別。
在處理大表時(shí),AVG()函數(shù)的性能可能會(huì)有所下降。因此,如果只需要估計(jì)平均值,可以使用APPROX_COUNT_DISTINCT()函數(shù):
SELECT APPROX_COUNT_DISTINCT(column_name) FROM table_name;
此函數(shù)返回估計(jì)不同值的數(shù)量,可以用作平均值的近似值。這可以在處理大數(shù)據(jù)集時(shí)提高查詢性能。