在不同的列值上获取MIN(日期)行

时间:2013-06-05 09:23:10

标签: mysql select group-by

我想问一个关于我觉得难以完成的查询的问题,至少对我而言。我需要下表中的行(标有红色矩形),这些行具有min(date),而表格具有不同的用户idquiz id

如果有人可以帮我这个,我会很开心!

提前致谢!

Here是表格中的图片

3 个答案:

答案 0 :(得分:0)

    select t1.* from sometable t1
    where t1.EndDate = (select min(t2.EndDate) from sometable t2)

答案 1 :(得分:0)

您应该可以执行简单的查询,例如:

select * from your_table_name where EndDate = (select min(EndDate) from your_table_name)

答案 2 :(得分:0)

试试这个sql。如果您有多个用户进行多项考试,此sql将有所帮助。

SQL Fiddle

MySQL 5.5.30架构设置

create table test(
userid int,
enddate datetime,
quizid int);

insert into test
values(823,'2013-02-06 14:23:05',5);

insert into test
values(823,'2013-02-06 14:23:05',5);

insert into test
values(823,'2013-02-06 14:23:05',5);


insert into test
values(824,'2013-02-06 14:23:08',5);


insert into test
values(824,'2013-02-06 14:23:10',5);

查询1

 select DISTINCT userid,quizid,enddate
    from test
    where enddate IN(
    select min(enddate)
    from test
    group by userId,quizId
    )

<强> Results

| USERID | QUIZID |                         ENDDATE |
-----------------------------------------------------
|    823 |      5 | February, 06 2013 14:23:05+0000 |
|    824 |      5 | February, 06 2013 14:23:08+0000 |