在postgres中获取每天的第一次和最后一次

时间:2016-11-22 16:50:43

标签: sql postgresql

我有一个日期时间字段 created_at 的表。我想知道每天的第一次和最后一次。

这适用于寻找所有日子:

SELECT date(created_at) from foo where person_id=46 group by date(created_at);

这也是为了找到一天的第一次和最后一次。

SELECT min(created_at), max(created_at) from foo where person_id=46 and created_at::date = '2015-09-07';

我的问题是将它们结合起来。我在考虑使用子查询,但它只返回一个结果。

SELECT min(created_at), max(created_at) 
FROM foo 
WHERE person_id=46 
AND created_at::date IN (
SELECT date(created_at) 
FROM foo 
WHERE person_id=46 
GROUP BY date(created_at));

1 个答案:

答案 0 :(得分:3)

我认为这应该适合你:

SELECT DATE(created_at), min(created_at), max(created_at) FROM foo WHERE person_id=46 GROUP BY DATE(created_at);