订单没有重复

时间:2011-08-10 13:59:59

标签: mysql

我有一张表格如下:

ident_nr|proj_nr|start_time|
----------------------------
05.26.73|0000001|1116936920|
09.56.df|0000002|1213431234|
11.ac.12|0000003|1236485758|
98.er.df|0000001|1287789755|
70.12.5n|0000001|1011245554|
33.dt.vp|0000003|1239125544|

我想得到这样的结果:

ident_nr|proj_nr|start_time|
----------------------------
98.er.df|0000001|1287789755|
09.56.df|0000002|1213431234|
33.dt.vp|0000003|1239125544|

其中proj_nr为asc顺序,并以最大值开始时间。

注意:ident_nr是唯一的,proj_nr可以有多个ident_nr。 数据库:MySQL。

是否有可以实现此结果的SQL查询? 感谢

2 个答案:

答案 0 :(得分:1)

SELECT t.ident_nr, t.proj_nr, t.start_time
    FROM YourTable t
        INNER JOIN (SELECT proj_nr, MAX(start_time) AS MaxTime
                        FROM YourTable
                        GROUP BY proj_nr) q
            ON t.proj_nr = q.proj_nr
                AND t.start_time = q.MaxTime
    ORDER BY t.proj_nr;

答案 1 :(得分:1)

SELECT t1.* 
FROM table AS t1
INNER JOIN (
    SELECT proj_nr, MAX(start_time) AS MaxTime
    FROM table
    GROUP BY proj_nr) AS t2
    ON (t1.proj_nr = t2.proj_nr AND t1.start_time = t2.MaxTime)

您的示例数据中的条件似乎为MAX(start_time)。如果没有,请在您的问题中详细说明您的需求。