MySQL如何选择对应列值的第一个重复行

MySQL如何选择对应列值的第一个重复行,mysql,Mysql,我有一个包含三列(a、B、C)的表。所有列都是数据类型varchar()。这里我只想选择列A的第一个重复值的初始行。像列A一样,列A有不同的值(1,2,3),因此需要检索列A中值为1的初始行。还有一件事,我的数据集中没有时间戳列 For value 1 in column A, i need to retrieve row that has 1,2,1 value for column (A,B,C) For value 2 in column A, i need to retrieve row

我有一个包含三列(a、B、C)的表。所有列都是数据类型varchar()。这里我只想选择列A的第一个重复值的初始行。像列A一样,列A有不同的值(1,2,3),因此需要检索列A中值为1的初始行。还有一件事,我的数据集中没有时间戳列

For value 1 in column A, i need to retrieve row that has 1,2,1 value for column (A,B,C)
For value 2 in column A, i need to retrieve row that has 2,4,1 value for column (A,B,C)
For value 3 in column A, i need to retrieve row that has 3,1,1 value for column (A,B,C)

A|B|C
-----  
1|2|1
3|1|2
3|3|1
2|4|1
3|1|2
3|1|4
1|2|3

Now i want a Output Table as describe below.

A|B|C
-----
1|2|1
3|1|2
2|4|1

考虑以下几点。为了简单起见,我使用了一个自动递增的id,但是一个唯一的时间戳也可以使用

 DROP TABLE IF EXISTS my_table;

 CREATE TABLE my_table 
 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
 ,A INT NOT NULL
 ,B INT NOT NULL
 ,C INT NOT NULL 
 ,UNIQUE(a,b,c)
 );

 INSERT INTO my_table (a,b,c) VALUES
 (1 ,2 ,1),
 (1 ,1 ,2),
 (2 ,3 ,1),
 (2 ,4 ,1),
 (3 ,1 ,2),
 (3 ,1 ,4),
 (3 ,2 ,3);

 SELECT x.* FROM my_table x ORDER BY id;
 +----+---+---+---+
 | id | A | B | C |
 +----+---+---+---+
 |  1 | 1 | 2 | 1 |
 |  2 | 1 | 1 | 2 |
 |  3 | 2 | 3 | 1 |
 |  4 | 2 | 4 | 1 |
 |  5 | 3 | 1 | 2 |
 |  6 | 3 | 1 | 4 |
 |  7 | 3 | 2 | 3 |
 +----+---+---+---+

 SELECT x.* 
   FROM my_table x 
   JOIN 
      ( SELECT a
             , MIN(id) min_id 
          FROM my_table 
         GROUP 
            BY a
      ) y 
     ON y.a = x.a 
    AND y.min_id = x.id 
  ORDER 
     BY id;
 +----+---+---+---+
 | id | A | B | C |
 +----+---+---+---+
 |  1 | 1 | 2 | 1 |
 |  3 | 2 | 3 | 1 |
 |  5 | 3 | 1 | 2 |
 +----+---+---+---+

有关此问题的详细信息,请参阅手册()。

@Sebas请在这里帮助我。您的专栏中没有“时间”,因此没有“第一次”。@Kunal2229您必须定义“第一次”的含义。它是任意的还是取决于其他列?@Sebas这里首先是,假设like列A有两次1,所以我想要列A的第一个值1,并且想要列A的所有其他值也和它一起。正如您可以看到的2个表,第一个表是输入的,第二个表是输出的,在应用这样的查询之后。@草莓我有一个巨大的数据集,其中包含时间戳列,但在这里我不能显示我的数据集,所以我只提供了一些示例,以便您能够轻松理解。感谢您在这里帮助我解决问题,我真的非常感谢