在一个表中,我有一些列有重复值我想从我的表中检索唯一值我使用SELECT DISTINCT column_name FROM table_name
查询,我有唯一的列,但我的问题是我也想要任何重复值的ID如何从使用单个查询中检索?
例如
+----+------+------+
| id | name | po |
+----+------+------+
| 1 | some | 2 |
| 2 | xyzs | 3 |
| 3 | frth | 2 |
| 4 | lopd | 3 |
| 5 | gtry | 2 |
+----+------+------+
我想找到独特的po及其任何一个id
输出
像这样的事情
po - 2 id - ( any of 1,3,5)
po - 3 id - ( any of 2 or 4)
答案 0 :(得分:2)
只需将它们分组并获得最大ID或最小值。
SELECT max(id), po FROM table_name group by po
答案 1 :(得分:0)
不要引用我这个,但你可能会做类似的事情:
SELECT GROUP_CONCAT(id) FROM table_name GROUP BY po
答案 2 :(得分:0)
如果你不关心你会得到哪个身份证,那么:
SELECT po,id FROM table GROUP BY po
如果您希望获得具有相同po的第一个/最后一个id,您还可以添加MIN(id)/ MAX(id):
SELECT po,MIN(id) as id FROM table GROUP BY po
您还可以所有该po的ID:
SELECT po,GROUP_CONCAT(id) as ids FROM table GROUP BY po
答案 3 :(得分:0)
试试这个:
SELECT MIN(id) id, po
FROM table_name
GROUPB BY po, id