mysql - 分组将最旧和最新日期合并为一行

时间:2017-03-11 10:26:54

标签: mysql group-by subquery

我有tbl_events

key  userID    date

1     1         1.1.2000
2     1         1.1.2017
3     2         2.2.1990

我试图解决这个问题:

select distinct userID, date [that is earliest eg row 1] as earliest_date, 
date [that is latest eg row 2] as latest_date
from tbl_events

如果用户标识在tbl_events中只有一行,那么tbl_events.date将同时作为最早和最新的日期

即我的结果是:

userID    earliest_date    latest_date

1         1.1.2000         1.1.2017
2         2.2.1990         2.2.1990

我可以通过大量循环来做到这一点相当低效,但我想知道是否有办法用" group by"或者我看到过似乎在括号中包含其他select语句的查询

如果有人能指出我正确的方向,我将非常感激。

谢谢。

尼克

1 个答案:

答案 0 :(得分:0)

您可以使用MAX()MIN()汇总函数说明

select userid, max(`date`) as earliest_date,
min(`date`) as furthest_date
from tbl
group by userid;