MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLから返された結果セットをグループに分割するにはどうすればよいですか?


これは、SELECTステートメントでGROUPBY句を使用して実行できます。 GROUP BY句を使用して、グループ化基準として列を指定できます。指定されたグループ化基準により、特定の列で同じ値を持つ行は単一のグループと見なされます。このようにして、MySQLSELECTステートメントによって返される結果セットはグループに分割されます。

以下はそれを理解するための良い例です-

次のように「従業員」という名前のテーブルがあります-

mysql> Select * from employees;
+------+-------------+--------+------------+
| id   | designation | Salary | DoJ        |
+------+-------------+--------+------------+
| 100  | Asst.Prof   | 50000  | 2016-06-15 |
| 300  | Prof        | 85000  | 2010-05-18 |
| 250  | Asso.Prof   | 74000  | 2013-02-12 |
| 400  | Prof        | 90000  | 2009-05-19 |
| 200  | Asst.Prof   | 60000  | 2015-05-11 |
+------+-------------+--------+------------+
5 rows in set (0.00 sec)

次のスクリプトを使用して、出力をグループに分割します。

mysql> select designation, count(*), AVG(salary) from employees group by designation;
+-------------+----------+-------------+
| designation | count(*) | AVG(salary) |
+-------------+----------+-------------+
| Asso.Prof   | 1        | 74000.0000  |
| Asst.Prof   | 2        | 55000.0000  |
| Prof        | 2        | 87500.0000  |
+-------------+----------+-------------+
3 rows in set (0.00 sec)

上記のクエリは、結果セットをAsso.Prof、合計1、平均給与74000、Asst.Prof、合計2、平均給与55000、Prof、合計2、平均給与87500のグループに返します。 。


  1. MySQLクエリの結果を変数に割り当てる方法は?

    @anyVariableNameを使用して、クエリの結果を変数に割り当てます。まずテーブルを作成しましょう- mysql> create table DemoTable1864      (      Id int,      FirstName varchar(20),      LastName varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、

  2. MySQLでselectクエリによって取得された結果をどのように並べ替えることができますか?

    テーブルから特定のデータまたは行を選択するのが一般的です。行は、テーブルに表示される順序で返されます。テーブルから選択した行を、ある列に対して昇順または降順で返す必要がある場合があります。 「ORDERBY」ステートメントは、ある列に関して結果を並べ替えるために使用されます。次の例は、より明確になります。 「name」フィールドを含むさまざまなフィールドで構成されるテーブルがあるとします。テーブルからすべての行を選択しますが、行は名前のアルファベット順に並べる必要があります。ここで「ORDERBY」ステートメントが機能します。このシナリオでは、結果を「名前」フィールドの昇順で並べ替える必要