Home > Database > Mysql Tutorial > What is the difference between SELECT DISTINCT and GROUP BY in MySQL?

What is the difference between SELECT DISTINCT and GROUP BY in MySQL?

WBOY
Release: 2023-09-18 23:53:07
forward
1239 people have browsed it

MySQL 中 SELECT DISTINCT 与 GROUP BY 的区别?

SELECT DISTINCT can be used to give different values. Use it to remove duplicate records and It can also be used with aggregate functions. For example: MAX, AVG, etc. This can be applied on a single column.

Right now, I'm creating a table to use SELECT DISTINCT on a column. Create a table Help for CREATE command -

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

Insert records −

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)
Copy after login

Display all records with the help of SELECT command. The query is as follows -

mysql> SELECT * from DistinctDemo;
Copy after login

After executing the above query, we will get the following output −

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

Above, we have six records, among which John and Bob are duplicates. We can apply DISTINCT to Remove duplicate records. The syntax is as follows −

SELECT distinctcolumn_name from yourTableName order by column_name;
Copy after login

Now, I am applying the above query to remove duplicates-

mysql> SELECT distinct name from DistinctDemo;
Copy after login

Below is the output

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

Select group by can be used to get data from different columns and Group into one or more column. This can also be applied with aggregate function.For Example:SUM,AVG etc.

Firstly, I am creating a table with the CREATE command help -

column. This can also be used with aggregate functions. For example: SUM, AVG, etc.

Firstly, I am creating a table using CREATE command −

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

After creating the table, I insert records into the table as shown below −

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)
Copy after login

Now, we can use SELECT Command shows all records −

mysql> SELECT * from GroupDemo1;
Copy after login

The following is the output-

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

I will apply GROUP BY to know the number of occurrences of the same address. here it is Syntax −

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

Let us apply the above syntax to GROUP BY -

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

The following is the output -

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

The above is the detailed content of What is the difference between SELECT DISTINCT and GROUP BY in MySQL?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template