ホームページ  >  記事  >  データベース  >  MySQL の SELECT DISTINCT と GROUP BY の違いは何ですか?

MySQL の SELECT DISTINCT と GROUP BY の違いは何ですか?

WBOY
WBOY転載
2023-09-18 23:53:071214ブラウズ

MySQL 中 SELECT DISTINCT 与 GROUP BY 的区别?

SELECT DISTINCT を使用すると、さまざまな値を指定できます。これを使用して重複レコードを削除し、 集計関数と組み合わせて使用​​することもできます。例: MAX、AVG など。これは応用できる 単一の列で。

現在、列で SELECT DISTINCT を使用するテーブルを作成しています。テーブルを作成する CREATE コマンドのヘルプ -

mysql> CREATE TABLE DistinctDemo
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.64 sec)

レコードの挿入 -

mysql> INSERT into DistinctDemo values(1,'John');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(2,'John');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into DistinctDemo values(3,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(4,'John');
Query OK, 1 row affected (0.15 sec)

mysql> INSERT into DistinctDemo values(5,'David');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(6,'Bob');
Query OK, 1 row affected (0.16 sec)

SELECT コマンドを使用してすべてのレコードを表示します。クエリは次のとおりです -

mysql> SELECT * from DistinctDemo;

上記のクエリを実行すると、次の出力が得られます -

+------+-------+
| id   | name  |
+------+-------+
| 1    | John  |
| 2    | John  |
| 3    | Bob   |
| 4    | John  |
| 5    | David |
| 6    | Bob   |
+------+-------+
6 rows in set (0.00 sec)

上記には 6 つのレコードがあり、そのうちの John と Bob は重複しています。 DISTINCT を適用できるのは、 重複したレコードを削除します。構文は次のとおりです -

SELECT distinctcolumn_name from yourTableName order by column_name;

今、上記のクエリを適用して重複を削除しています-

mysql> SELECT distinct name from DistinctDemo;

以下は出力です

+-------+
| name  |
+-------+
| John  |
| Bob   |
| David |
+-------+
3 rows in set (0.00 sec)

Select group by は次の目的で使用できます。さまざまな列からデータを取得し、1 つ以上にグループ化します 列。これは集計関数にも適用できます。例: SUM、AVG など。

まず、CREATE コマンドのヘルプ -

を使用してテーブルを作成します。 これは集計関数でも使用できます。例: SUM、AVG など。

最初に、CREATE コマンドを使用してテーブルを作成しています -

mysql> CREATE table GroupDemo1
-> (
-> id int,
-> name varchar(100),
-> address varchar(100)
-> );
Query OK, 0 rows affected (0.68 sec)

テーブルを作成した後、以下に示すようにテーブルにレコードを挿入します -

mysql> INSERT into GroupDemo1 values(1,'John','US');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into GroupDemo1 values(2,'Bob','UK');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into GroupDemo1 values(3,'David','US');
Query OK, 1 row affected (0.12 sec)

mysql> INSERT into GroupDemo1 values(4,'David','US');
Query OK, 1 row affected (0.15 sec)

これで、SELECT コマンドを使用できるようになりますすべてのレコードを表示します -

mysql> SELECT * from GroupDemo1;

以下は出力です -

+------+-------+---------+
| id   | name  | address |
+------+-------+---------+
| 1    | John  | US      |
| 2    | Bob   | UK      |
| 3    | David | US      |
| 4    | David | US      |
+------+-------+---------+
4 rows in set (0.00 sec)

GROUP BY を適用して、同じアドレスの出現数を確認します。ここにあります 構文 −

SELECT column_name1,......N aggregate function( ) from yourTableName group by
column_name;

上記の構文を GROUP BY に適用しましょう -

mysql> SELECT address, count(*) from GroupDemo1 group by address;

以下は出力です -

+---------+----------+
| address | count(*) |
+---------+----------+
| US      | 3        |
| UK      | 1        |
+---------+----------+
2 rows in set (0.00 sec)

以上がMySQL の SELECT DISTINCT と GROUP BY の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。