【发布时间】:2020-05-07 07:09:01
【问题描述】:
我正在尝试超时查看特定字段的差异,为此我请求特定字段在表中显示的最短和最长时间。问题是它向我显示了显示字段的绝对最小和最大时间,但我希望只看到每个连续显示的最小和最大时间。
例如,假设我的表格如下所示:
Time | Name
2020-04-17 06:00:15 | John
2020-04-18 12:00:15 | John
2020-04-19 06:00:15 | Jackson
2020-04-19 08:00:15 | Jackson
2020-04-19 16:00:15 | Jackson
2020-04-19 20:00:15 | John
2020-04-20 06:00:15 | John
2020-04-21 06:00:15 | Jackson
2020-04-22 06:00:15 | Jackson
我想要的结果是:
Min(Time) Max(Time) Name
2020-04-17 06:00:15 2020-04-18 12:00:15 John
2020-04-19 06:00:15 2020-04-16 06:00:15 Jackson
2020-04-19 20:00:15 2020-04-20 06:00:15 John
2020-04-21 06:00:15 2020-04-22 06:00:15 Jackson
但是我的 SQL 查询得到的结果是:
SELECT MIN(Time), MAX(Time), Name
from table
GROUP BY Name
ORDER BY MAX(Time) DESC
Min(Time) Max(Time) Name
2020-04-17 06:00:15 2020-04-20 06:00:15 John
2020-04-19 06:00:15 2020-04-22 06:00:15 Jackson
显示,绝对最小和最大时间:(
我该如何解决这个问题?
【问题讨论】:
-
您使用的是哪个引擎? SQL Server、OracleSQL、PostgreSQL、...?
标签: sql group-by gaps-and-islands