Rahul R
Rahul R

Reputation: 207

i want to retrieve unique values from my table

In a table i have some of column have duplicate values i want to retrieve unique values from my table i used SELECT DISTINCT column_name FROM table_name query and i got unique columns but my problem is i also want id of anyone of the duplicate value how can i retrieve that from using a single query ? Eg

+----+------+------+
| id | name | po   |
+----+------+------+
|  1 | some |    2 |
|  2 | xyzs |    3 |
|  3 | frth |    2 |
|  4 | lopd |    3 |
|  5 | gtry |    2 |
+----+------+------+

i want to find unique po and any one of its id

Output

some thing like this

po - 2 id - ( any of 1,3,5)
po - 3 id - ( any of 2 or 4)

Upvotes: 0

Views: 92

Answers (4)

user2001117
user2001117

Reputation: 3777

try this:

SELECT MIN(id) id, po 
FROM table_name
GROUPB BY po, id

Upvotes: 0

poncha
poncha

Reputation: 7856

If you don't care which id you will get, then:

SELECT po,id FROM table GROUP BY po

If you wish to get first/last of the ids with that same po, you can add MIN(id)/MAX(id) as well:

SELECT po,MIN(id) as id FROM table GROUP BY po

You can also have all the ids for that po:

SELECT po,GROUP_CONCAT(id) as ids FROM table GROUP BY po

Upvotes: 0

Jason Swett
Jason Swett

Reputation: 45074

Don't quote me on this, but you might be able to do something like:

SELECT GROUP_CONCAT(id) FROM table_name GROUP BY po

Upvotes: 0

Luis Tellez
Luis Tellez

Reputation: 2973

Just group them and get the max id or the min.

SELECT max(id), po FROM table_name group by po

Upvotes: 2

Related Questions