このチュートリアルでは、例を使用して、SQLでの集計関数名avg()関数の概念について学習します。
AVG()関数は、SQLの集計関数の1つです。 AVG() 関数は、式で指定された値の平均を表示します。 AVG()関数は数値関数です。 AVG()関数は、1つのパラメーターのみを許可します。 AVG()関数はNULL値を無視します。
SELECT AVG()関数の構文は次のとおりです。
SELECT Column_Name_1, Column_Name_2, Column_Name_3, AVG(Column_Name) FROM Table_Name WHERE Expression;
例を使ってAVG()関数を理解しましょう
次のデータを含む既存のテーブルについて考えてみます。
テーブル名:-D_Students
Student_Id | Student_Name | First_Sem | Second_Sem | Third_Sem | Fourth_Sem | Fifth_Sem | Sixth_Sem | 合計 | Department_Id |
202111 | ヴァイシュナヴィパティル | 94 | 91 | 88 | 85 | 95 | 92 | 91 | 1 |
202112 | Vaibhav Lokhande | 85 | 90 | 92 | 80 | 85 | 82 | 86 | 2 |
202113 | Yash Dhull | 90 | 88 | 94 | 87 | 85 | 90 | 89 | 3 |
202114 | ソナリパトール | 95 | 90 | 92 | 88 | 92 | 90 | 91 | 4 |
202115 | Axar Patel | 85 | 80 | 82 | 86 | 92 | 84 | 85 | 1 |
202116 | ミーナミシュラ | 78 | 75 | 80 | 74 | 85 | 77 | 78 | 3 |
202117 | Mahesh Kumbhar | 75 | 80 | 75 | 78 | 80 | 76 | 77 | 5 |
202118 | サクシパティル | 80 | 78 | 74 | 78 | 80 | 77 | 78 | 2 |
202119 | Sopan Bhore | 70 | 68 | 75 | 75 | 80 | 80 | 75 | 2 |
202220 | Prajwal Lokhande | 80 | 85 | 85 | 75 | 78 | 80 | 81 | 4 |
202221 | アヌジャワナレ | 85 | 88 | 86 | 82 | 84 | 85 | 85 | 5 |
202222 | Venkatesh Iyer | 90 | 89 | 87 | 90 | 92 | 91 | 90 | 3 |
202223 | アヌシュカセン | 70 | 75 | 71 | 74 | 80 | 78 | 75 | 1 |
202224 | Aakash Jain | 80 | 75 | 72 | 74 | 85 | 80 | 78 | 4 |
202225 | Akshay Agarwal | 85 | 80 | 78 | 88 | 90 | 82 | 84 | 5 |
202226 | Shwetali Bhagwat | 90 | 80 | 85 | 88 | 90 | 80 | 86 | 1 |
202227 | マユリワーグ | 80 | 80 | 85 | 80 | 82 | 85 | 82 | 4 |
202228 | Utkarsh Rokade | 85 | 80 | 80 | 90 | 84 | 84 | 84 | 5 |
例1: クエリを実行して、D_Stundetsテーブルから学生の前期の列の平均を見つけます。
SELECT AVG(First_Sem) AS 'First Semester Average' FROM D_Students;
上記のSELECTAVG()関数クエリの例では、学生の1学期の列の平均を表示しました
上記のクエリの出力は次のとおりです。
前期平均 |
83.1667 |
例2: クエリを実行して、学部IDごとの学生の合計列グループの平均を見つけます。
SELECT Department_Id, AVG(Total) AS 'Total Average' FROM D_Students GROUP BY Department_Id;
上記のSELECTAVG()関数クエリの例では、学部IDごとの学生の合計列平均グループを表示しました。
上記のクエリの出力は次のとおりです。
Department_Id | 合計平均 |
1 | 84.2500 |
2 | 79.6667 |
3 | 85.6667 |
4 | 83.0000 |
5 | 82.5000 |
例3:クエリを実行して、平均的な学生の1学期から6学期の列グループを学生名で検索します。
SELECT Student_Id, Student_Name, AVG(First_Sem + Second_Sem +Third_Sem + Fourth_Sem + Fifth_Sem + Sixth_Sem)/6 AS 'OverAll Average' FROM D_Students GROUP BY Student_Name;
上記のSELECTAVG()関数クエリの例では、学生の1学期から6学期の平均グループを学生名で表示しています。平均関数の1つのパラメーターとして6つの列を使用しました。
上記のクエリの出力は次のとおりです。
Student_Id | Student_Name | 全体的な平均 |
202224 | Aakash Jain | 77.66666667 |
202225 | Akshay Agarwal | 83.83333333 |
202221 | アヌジャワナレ | 85.00000000 |
202223 | アヌシュカセン | 74.66666667 |
202115 | Axar Patel | 84.83333333 |
202117 | Mahesh Kumbhar | 77.33333333 |
202227 | マユリワーグ | 82.00000000 |
202116 | ミーナミシュラ | 78.16666667 |
202220 | Prajwal Lokhande | 80.50000000 |
202118 | サクシパティル | 77.83333333 |
202226 | Shwetali Bhagwat | 85.50000000 |
202114 | ソナリパトール | 91.16666667 |
202119 | Sopan Bhore | 74.66666667 |
202228 | Utkarsh Rokade | 83.83333333 |
202112 | Vaibhav Lokhande | 85.66666667 |
202111 | ヴァイシュナヴィパティル | 90.83333333 |
202222 | Venkatesh Iyer | 89.83333333 |
202113 | Yash Dhull | 89.00000000 |
例4: クエリを実行して、学生の名前で学生の1学期から6学期の列グループの平均を見つけ、平均が75を超えていることを確認します。
SELECT Student_Id, Student_Name, AVG(First_Sem + Second_Sem +Third_Sem + Fourth_Sem + Fifth_Sem + Sixth_Sem)/6 AS 'OverAll Average' FROM D_Students GROUP BY Student_Name HAVING AVG(First_Sem + Second_Sem +Third_Sem + Fourth_Sem + Fifth_Sem + Sixth_Sem)/6 > 75;
上記のSELECTAVG ()関数クエリの例では、学生の1学期から6学期の平均グループを学生名で表示し、平均は75を超えています。HAVING句がクエリで使用されます。
上記のクエリの出力は次のとおりです。
Student_Id | Student_Name | 全体的な平均 |
202224 | Aakash Jain | 77.66666667 |
202225 | Akshay Agarwal | 83.83333333 |
202221 | アヌジャワナレ | 85.00000000 |
202115 | Axar Patel | 84.83333333 |
202117 | Mahesh Kumbhar | 77.33333333 |
202227 | マユリワーグ | 82.00000000 |
202116 | ミーナミシュラ | 78.16666667 |
202220 | Prajwal Lokhande | 80.50000000 |
202118 | サクシパティル | 77.83333333 |
202226 | Shwetali Bhagwat | 85.50000000 |
202114 | ソナリパトール | 91.16666667 |
202228 | Utkarsh Rokade | 83.83333333 |
202112 | Vaibhav Lokhande | 85.66666667 |
202111 | ヴァイシュナヴィパティル | 90.83333333 |
202222 | Venkatesh Iyer | 89.83333333 |
202113 | Yash Dhull | 89.00000000 |