如何获得每个日期的最小(时间)和最大(时间)

时间:2018-07-13 10:05:46

标签: mysql phpmyadmin

嗨,我是使用xampp的PHPmyadmin的新手,没有MYSQL的背景。当我喜欢研究它的工作原理时,脑海里浮现出一个念头,因为我似乎无法弄清楚如何使用MIN(time)和期望的输出来获取报告,这使我现在睡不着一个星期。每个日期的“ MAX”(时间)在“一列”中。

UserID  Name       Date        Time 
103     Pikachu     7/1/2018    11:01:16 PM
103     Pikachu     7/1/2018    11:01:20 PM 
103     Pikachu     7/1/2018    11:02:01 PM
204     Bulbasaur   7/1/2018    11:15:35 PM
103     Pikachu     7/1/2018    9:02:16  AM
103     Pikachu     7/1/2018    9:02:16  AM
204     Bulbasaur   7/1/2018    9:25:35  AM
204     Bulbasaur   7/2/2018    12:05:15 AM
204     Pikachu     7/2/2018    12:09:35 AM

预期输出:

UserID  Name       Date        Time
103     Pikachu     7/1/2018    11:01:16 PM
103     Pikachu     7/1/2018    9:02:16  AM
204     Bulbasaur   7/1/2018    11:15:35 PM
204     Bulbasaur   7/1/2018    9:25:55  AM
204     Bulbasaur   7/2/2018    12:05:12 AM
204     Bulbasaur   7/2/2018    NULL
103     Pikachu     7/2/2018    12:09:35 AM
103     Pikachu     7/2/2018    NULL

请,我们将不胜感激

1 个答案:

答案 0 :(得分:0)

同意@Mureinik使用分组依据,但我认为user_id和名称也需要包含在分组依据中,并使用union all组合两个结果

select distinct UserID,Name, date,Time from
 (
    SELECT  UserID,Name, date, MIN(time) as Time
    FROM     mytable
    GROUP BY date,UserID,Name
    union all

    SELECT  UserID,Name, date, MAX(time) as Time
    FROM     mytable
    GROUP BY date,UserID,Name
) as T