2016-02-12 57 views
0

我有一個時間序列的數據有一個trip_id和時間戳。我試圖編寫一個SQL查詢來給我一天發生的唯一trip_id's的數量。計數不同的SQL,並在午夜時間戳與時間戳

問題是旅程延長到午夜,因爲第二天來這次旅行被視爲一個新的獨特的價值,並使用此代碼select date(Timestamp), COUNT(DISTINCT trip_id)計算兩次。任何幫助或正確的方向適當的點將非常感激。

數據:

trip_id Timestamp 
47585  "2015-11-05 09:22:23" 
16935  "2015-11-05 12:34:28" 
16935  "2015-11-05 20:40:28" 
16935  "2015-11-05 23:09:24" 
16935  "2015-11-05 23:21:58" 
16935  "2015-11-06 00:22:05" 
15434  "2015-11-06 21:23:28" 

期望的結果

date    count    
2015-11-05  2 
2015-11-06  1 

回答

1

使用最低的時間戳的每一行:

select dte, count(*) 
from (select trip_id, min(date_trunc('day', timestamp)) as dte 
     from t 
     group by trip_id 
    ) t 
group by dte 
order by dte; 

也就是說,算上一天的行程開始時。

+0

你在答案 – minatverma

+0

@minatverma中是否遺漏了'minimum'。 。 。謝謝。 –