2017-02-04 31 views
0

在MonetDB中工作時,我有一個包含時間值的'entrytime'列。我有:monetdb,group by

select "minute"(entrytime) as unitTime, period 
    from schema1.zones 
    where date1 >= eDate and date1 <= xDate and id=256 
    group by unitTime, period 

但我想組一個15分鐘的邊界的結果,然後爲15分鐘塊返回的最大「期間的價值,任何想法?

謝謝。

回答

0

這裏有一個R解決方案的例子。我認爲你只需要將你的入場時間欄轉換爲你想要的時間間隔?那麼你可以用MAX()運行一個組?

# run this line once 
# install.packages("MonetDBLite") 

library(DBI) 

x <- data.frame(entrytime = sample(1:1000 , 10000 , replace = TRUE) , period = sample(1:10 , 10000 , replace = TRUE)) 

head(x) 

x$intervals <- findInterval(x$entrytime , seq(0 , 1000 , by = 15)) 

db <- dbConnect(MonetDBLite::MonetDBLite()) 

dbWriteTable(db , 'x' , x) 

# max period for distinct minutes 
head(dbGetQuery(db , "SELECT entrytime , MAX(period) FROM x GROUP BY entrytime")) 

# max period for 15 minute intervals 
head(dbGetQuery(db , "SELECT intervals , MAX(period) FROM x GROUP BY intervals"))