結果をグループ化するGROUP BYステートメントは、1つ以上の列に応じて設定します。 グループ化されたコラムで私達はCOUNT、SUM、AVG、およびその他の機能を使用することができます。 構文BY GROUP SELECT COLUMN_NAME、関数(COLUMN_NAME) TABLE_NAME FROM COLUMN_NAMEオペレータ値 COLUMN_NAME BY基であり、 我々は最初のデータベースに以下のデータを使用する前に、次のテーブル構造とデータを使用します。 NAMES UTF8 SET、 SET FOREIGN_KEY_CHECKS = 0; DROP TABLEは`IFをemployee_tbl`するEXISTS; CREATE TABLEのemployee_tbl``( ` id` INT( 11 )NOT NULL、 `チャーNAME`( 10)NOT NULL DEFAULT '' 、 以前の日時で` date`を、NOT NULL、 `singin` TINYINT( 4)NOT NULL DEFAULT ' 0 ' COMMENT "ログイン' PRIMARY KEY( `id`) )ENGINE = InnoDBのDEFAULT CHARSET = UTF8; BEGIN; INSERT INTO`はVALUES(employee_tbl` ' 1 ' ' ボブ' ' 2016年4月22日夜3時25分33秒を'、' 1 ')、(' 2 '、' 王'、' 2016年4月20日夜三時25分47秒'、' 3 ')、(' 3 '、' メアリー'、" 2016年4月19日夜03時26分02秒' ' 2 ')、(' 4 ' ' 王' ' 2016年4月7日夜三時26分14秒' ' 4 ')、(' 5 '、' ボブ'、' 2016年4月11日夜03時26分40秒'、' 4 ')、(' 6 '、' ボブ'、' 2016年4月4日夜03時26分54秒'、「2 "); A COMMIT; のSET FOREIGN_KEY_CHECKSを = 1。; 導入が成功し、次のSQL文です: MySQLの > SET UTF8名; MySQLの > SELECT * employee_tbl FROM; + ---- + ---- + -------- + -------- + ----------------- |上記のid上記の|名前| DATE |唄え| + ---- + -------- + --------------------- + -------- + | 1 |暁明| 2016年4月22日午後三時25分33秒| 1 | | 2 |エイミー| 2016年4月20日午後3時25分47秒| 3 | | 3 |メアリー| 2016年4月19日午後3時26分02秒| 2 | | 4 |エイミー| 2016年4月7日15 :26である:。14 | 4 | 。| 5 |ボブ| 2016年4月11日夜03時26分40秒| 4 | 。| 6 |ボブ| 2016年4月4日午後3時26分54秒| 2 | + ---- + - --------------------- + -------- + ------- + 次に、それぞれの人の名前と統計によってグループ化されたデータテーブルにGROUP BYステートメントを使用してレコードの数: MySQLの > SELECT名前、COUNT(* )GROUP BY employee_tbl名FROM; + -------- + - + -------- |名前| COUNT(*)| + -------- + ---------- + |メアリー| 1 | |暁明| 3 | |王| 2 | + -------- + ---------- +
WITH ROLLUP使用して 、その後ROLLUP WITHパケット内の統計データに基づいて同じ統計(SUM、AVG、COUNT ...)を達成することができます。 MySQLの > SELECT名、SUM(唄え)singin_count AS employee_tbl GROUP BY FROM WITH ROLLUPに名前を付ける; + -------- + -------------- + |名前| singin_countを| + + -------------- + -------- |メアリー| 2 | |暁明| 7 | |エイミー| 7 | | NULL | 16 | + --- ----- + -------------- + すべてのためのNULLレコードのログインを表しています。 合体構文、置換されていて、NULL名を設定するために合体することができます: SELECT COALESCE(A、B、C); MySQLの > SELECT COALESCE(名前、' トータル' )、SUM(唄え)はsingin_count AS employee_tbl GROUP BY FROM ROLLUPとの名前; + -------------------------- + -------------- + | COALESCE(名前、" 合計")| singin_count | + -------------------------- + -------------- + |小さなライ| 2 | |暁明| 7 | |エイミー| 7 | |合計| 16 | + -------------------------- + - ------------ +