如何在单列中选择不同的行数据

时间:2014-07-30 21:03:25

标签: mysql

我有一个包含以下结构的表格,

ID      Date         Login     logout
644363  2014-07-02  11:18:00   11:29:00
644363  2014-07-02  11:55:00   12:17:00
644363  2014-07-02  12:17:00   12:24:00
644367  2014-07-02  15:25:00   15:42:00
644367  2014-07-02  15:45:00   15:59:00
644367  2014-07-02  16:15:00   16:38:00

这是登录和注销时间表,如何为每个ID选择首次登录时间和上次注销时间。

3 个答案:

答案 0 :(得分:1)

GROUP BY子句可能是您需要的minmax聚合:

SELECT min(login_time), max(logout_time) FROM this_table group by ID

这将获取每个ID的最短登录时间和最长注销时间,并将每对返回。

答案 1 :(得分:0)

SELECT ID, min(Login) as Earliest, Max(logout) as Latest
FROM table
GROUP BY ID

或者如果你白天需要它......

SELECT ID, min(Login) as Earliest, Max(logout) as Latest, `date`
FROM table
GROUP BY ID, `date`

答案 2 :(得分:0)

以下SQL查询可能会起到作用:

SELECT min(Login), max(logout)
FROM your_SQL_table group by ID