To return only the distinct values, use GROUP BY clause.
Let us first create a table −
mysql> create table DemoTable754 (ProductPrice int); Query OK, 0 rows affected (0.48 sec)
Insert some records in the table using insert command −
mysql> insert into DemoTable754 values(200); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable754 values(500); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable754 values(200); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable754 values(500); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable754 values(800); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable754 values(900); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable754 values(200); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable754 values(200); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable754 values(900); Query OK, 1 row affected (0.11 sec)
Display all records from the table using select statement −
mysql> select *from DemoTable754;
This will produce the following output -
+--------------+ | ProductPrice | +--------------+ | 200 | | 500 | | 200 | | 500 | | 800 | | 900 | | 200 | | 200 | | 900 | +--------------+ 9 rows in set (0.00 sec)
Following is the query to return distinct values and their count −
mysql> select ProductPrice,count(ProductPrice) from DemoTable754 group by ProductPrice;
This will produce the following output -
+--------------+---------------------+ | ProductPrice | count(ProductPrice) | +--------------+---------------------+ | 200 | 4 | | 500 | 2 | | 800 | 1 | | 900 | 2 | +--------------+---------------------+ 4 rows in set (0.00 sec)