Mysql SQL-根据不同列中的值筛选重复行
我有一个SQL表:Mysql SQL-根据不同列中的值筛选重复行,mysql,sql,duplicates,Mysql,Sql,Duplicates,我有一个SQL表: +-------------+-----------+---------+ | ID | position | user | +-------------+-----------+---------+ | 1 | 1 | 0 | | 2 | 2 | 0 | | 3 | 3 | 0 | | 4
+-------------+-----------+---------+
| ID | position | user |
+-------------+-----------+---------+
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 3 | 0 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |
| 6 | 6 | 0 |
| 7 | 7 | 0 |
| 8 | 7 | 1 |
+-------------+-----------+---------+
我想根据position列和user列的distinct值过滤重复行,对于第一个查询,我需要得到以下结果:
+-------------+-----------+---------+
| ID | position | user |
+-------------+-----------+---------+
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 3 | 0 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |
| 6 | 6 | 0 |
| 8 | 7 | 1 |
+-------------+-----------+---------+
对于第二个查询,我需要以下内容:
+-------------+-----------+---------+
| ID | position | user |
+-------------+-----------+---------+
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 3 | 0 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |
| 6 | 6 | 0 |
| 7 | 7 | 0 |
+-------------+-----------+---------+
我需要什么查询来实现这一点
谢谢。在没有进一步信息的情况下,以下两个查询假设您希望通过在第一种情况下取较大(最大)
user
值或在第二种情况下取较小(最小)user
值来解决重复位置
第一个问题:
SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT position, MAX(user) AS max_user
FROM yourTable
GROUP BY position
) t2
ON t1.position = t2.position AND
t1.user = t2.max_user
第二个问题:
SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT position, MIN(user) AS min_user
FROM yourTable
GROUP BY position
) t2
ON t1.position = t2.position AND
t1.user = t2.min_user
谢谢,这正是我想要的。如果它取另一个值(例如2),会怎么样?在这种情况下,您需要什么?