まず、要約統計
図1に示すように、集約関数
COUNTは、()の合計数を算出
SUM()合計
MAX()は最大値
MIN()は最小
平均値AVG()
使用2、集約関数
学生の総数? SELECT(COUNT * 学生からの); すべての学生のための和数学? SELECT SUM学生FROM(スコア); 数学の最高スコアのすべての学生? 学生FROM MAX(スコア)を選択し、 数学のすべての学生が最低のスコア? 学生FROM MIN(スコア)を選択し、 数学の平均ですべての学生? 学生FROM AVG SELECT(スコア); ### 学生の数? SELECT(COUNT学生* FROM); 219 別の方法: 学生FROM SELECT COUNT(スコア); 219 SELECT COUNT(STUDENT_ID)学生FROM; 219 SELECT COUNT( 1)学生FROM; 219 SELECT COUNT( 'ABC')FROM学生; 219 学生からの選択(teacher_id)をCOUNT; 205 COUNT(teacher_id)NULL値の行を無視し、 同じ行がNULL値では無視されます: SELECT MAX(音楽)スチューデントFROM; SELECT MIN(音楽)スチューデントFROM; SELECT SUM(スコア)学生FROM; SELECT AVG(スコア)学生FROM; COUNT( *)とCOUNT(1 )の比較: あなたのテーブルに主キーがない場合、COUNT( 1)COUNTより(* )の高速 主キー、主キーが(存在する場合数(以下、カウントの条件として主キー) *は)速くすることが あなたのテーブルが一つだけのフィールドを持っている場合、それは(カウント、 * )友人の最速です (COUNT両方*)数を比較(1)。主に(1カウントに対応するデータフィールドから)。 (COUNT場合 1)は、ポリ指数、IDです、それは確かに(1カウントされる)速いです。しかし、違いは非常に小さいです。 (カウントので、*)、自動的にそのフィールドに指定された最適化します。だから、必要がカウントしないように(?)、COUNT(*で)、あなたはSQLの最適化を完了するのに役立ちます。 AVG(スコア)がSUM(スコア)に相当する / COUNT(音楽)
3、グループの要約統計
キーワード:GROUP BY 、など: 異なるクラスの結果を比較するために、(あまりにも多くの学生は、学年にここで80点以下を最初の学生を数えていないので)どのようにそれぞれの数学のクラスの平均値を取得するには? SELECT、AVG(スコア)学生スコアFROM CLASS_ID > 80 CLASS_ID BY基; 注:集約関数のリターンを使用することに加えてSELECTフィールド、他のすべてのフィールドを、それらがGROUP BYの後に現れなければならないように。
たとえば、次のように 異なる取引所の合計購入金額のどの統計? SELECT(stock_code、左 2)、SUM(。価格* ボリューム) t_stock_trans_dtl FROM WHERE opt_typ =「買い」 左BY GROUP(stock_code、 2 ); 例: 取引の異なる種類の異なる取引所の総取引金額のどの統計? パケット番号の複数のフィールド SELECT左(stock_code、 (価格* 2)、opt_typ、SUM 巻) FROM t_stock_trans_dtl 左(stock_code、BY GROUP 2 )、opt_typ; 行は、統計計算の同じセットに割り当てられたNULL値GROUP BY、あろう値; SELECT teacher_id、COUNT( * ) 学生FROM teacher_id BY GROUP。
第二に、要約統計
図1に示すように、パケットフィルタリング結果
キーワード:+ BY GROUP HAVING 条件を指定することにより、グループに使用される特定のキーワードを備えた、 比較および場所:を有する HAVING:GROUP BYの後に行うパケットフィルタリング、; :行フィルタリングがGROUP BYの前に行われる; 例: 方法教授は、教師の15以上の科学的な名前を取得しましたか? SELECT、COUNT(Teacher_id *は) 学生FROM GROUP BYはteacher_id HAVING COUNT( *)> 15 ; 例: どのように数学のクラスと70ポイント以上の平均スコアを取得するには? SELECT CLASS_ID、AVG(音楽) スチューデントFROM GROUP BYがCLASS_ID HAVING AVG(スコア) > = 70。
2、パケットのソート結果
例: どのように、各クラスの平均(数学で80点以下の学生を除く)で数学のスコアを取得し、その後、平均値を降順にソート? キーワード:GROUP BY + ORDER BY #は、最初の場所を実行します、そして、注文することによって SELECT CLASS_ID、AVG (スコア) FROM 学生 WHEREスコア> 80は、 GROUP BYがCLASS_ID ORDERを BY AVG(スコア)DESC ; あなたはすべてのクエリを決定したい場合結果を並べ替えるには、ORDERを使用する必要がありBY!
3、SELECT句の順序
最も単純なSQL文:
SELECT 1 ;