SQLite AVG()函數(shù)用于檢索表達(dá)式或給定列的平均值。
語法
SELECT AVG(aggregate_expression)
FROM tables
[WHERE conditions];
在GROUP BY子句中使用AVG()函數(shù)時(shí)的語法:
SELECT expression1, expression2, ... expression_n
AVG(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
示例1:
假設(shè)有一個(gè)名為student的表,具有以下數(shù)據(jù):

從student表中檢索學(xué)生的平均費(fèi)用(fees):
SELECT AVG(FEES) AS "Avg Fees"
FROM STUDENT
WHERE ID > 0;
執(zhí)行上面查詢代碼,得到以下結(jié)果 -
sqlite> SELECT AVG(FEES) AS "Avg Fees"
...> FROM STUDENT
...> WHERE ID > 0;
18777.7777777778
sqlite>
示例2:
使用帶有DISTINCT子句的AVG()函數(shù),從student表中獲取FEES大于10000并且平均不同費(fèi)用。
SELECT AVG(DISTINCT FEES) AS "Avg Fees"
FROM STUDENT
WHERE FEES > 10000;
執(zhí)行上面查詢代碼,得到以下結(jié)果 -
sqlite> SELECT AVG(DISTINCT FEES) AS "Avg Fees"
...> FROM STUDENT
...> WHERE FEES > 10000;
28600.0
sqlite>
示例3:
使用數(shù)學(xué)公式在AVG()函數(shù)中計(jì)算求平均值。
可以使用數(shù)學(xué)公式根據(jù)您的要求檢索平均值,如下求每個(gè)月的平均值 -
SELECT AVG(FEES / 12) AS "Average Monthly Fees"
FROM STUDENT;
執(zhí)行上面查詢代碼,得到以下結(jié)果 -
sqlite> SELECT AVG(FEES / 12) AS "Average Monthly Fees"
...> FROM STUDENT;
1564.81481481481
sqlite>
示例4:
使用具有的GROUP BY子句的AVG()函數(shù):
從student表中檢索NAME和FEES,并按AGE分組數(shù)據(jù):
SELECT NAME, SUM(FEES) AS "Avg Fees by Name"
FROM STUDENT
GROUP BY AGE;
執(zhí)行上面代碼,得到以下結(jié)果 -
sqlite> SELECT NAME, SUM(FEES) AS "Avg Fees by Name"
...> FROM STUDENT
...> GROUP BY AGE;
Javasu|18000.0
Maxsu|16000.0
Linsu|80000.0
Sqlsu|25000.0
Linsu|30000.0
sqlite>