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

GROUP BY句は、集計関数なしでどのように機能しますか?


集計関数を使用せずにSELECTステートメントでGROUPBY句を使用すると、DISTINCT句のように動作します。たとえば、次の表があります-

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
| 150  | Saurabh | NULL       | Literature |
+------+---------+------------+------------+
7 rows in set (0.00 sec)

列「アドレス」でDISTINCT句を使用すると、MySQLは次の結果セットを返します。

mysql> Select DISTINCT ADDRESS from Student_info;
+------------+
| ADDRESS    |
+------------+
| Amritsar   |
| Chandigarh |
| Shimla     |
| Jhansi     |
| Delhi      |
| NULL       |
+------------+
6 rows in set (0.07 sec)

次のようにGROUPBY句を使用すると、DISTINCT-

を使用した場合と同じ結果セットを取得できます。
mysql> Select ADDRESS from Student_info GROUP BY Address;
+------------+
| ADDRESS    |
+------------+
| NULL       |
| Amritsar   |
| Chandigarh |
| Delhi      |
| Jhansi     |
| Shimla     |
+------------+
6 rows in set (0.00 sec)

MySQLによって返される両方の結果セットの違いを観察できます。GROUPBY句を使用してMySQLクエリによって返される結果セットは並べ替えられ、対照的に、DISTICT句を使用してMySQLクエリによって返される結果セットは並べ替えられません。


  1. MySQLで条件付きGROUPBYを実行してフェッチするにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentName varchar(40),    StudentMarks int ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('John',78); Query OK, 1 row affected (0.14 sec) mysql> i

  2. MySQL GROUP BY句の行を並べ替える、または選択する方法は?

    まずテーブルを作成しましょう- mysql> create table DemoTable1572    -> (    -> StudentId int,    -> StudentMarks int,    -> StudentName varchar(20)    -> ); Query OK, 0 rows affected (0.56 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert i