2016-11-22 2 views
1

私は日時フィールドのテーブルを持っていますcreated_at。私は毎日の最初と最後の時間を知りたい。postgresで毎日の最初と最後の時間を取得する

これはすべての日発見のために働いている:

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

、これも1日の最初と最後の時間を見つけるために働いています。

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

私の問題はそれらを組み合わせることです。サブクエリを使用することを考えていましたが、結果は1つだけ返されます。

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)); 

答えて

3

私はこれがあなたのためにそれをやるべきだと思う:

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

+0

がよさそうです。ありがとう! – gustavgans

関連する問題