2011-05-13 47 views
0

我是mysql中的新成員,目前我的查詢存在問題。我需要在一週內每天獲得每項活動的平均持續時間。日期格式如下:'2000-01-01 01:01:01',但我想擺脫01:01:01的事情,只關心日期。我怎麼做?如何使用mysql中的關鍵字按組獲取每一天的信息

表是這樣的:

record_id int(10)  NOT NULL, 
activity_id varchar(100) NOT NULL, 
start_time datetime  NOT NUll, 
end_time datetime  NOT NULL, 
duration int(10)  NOT NULL; 

感謝。

回答

0

你可以做類似下面

select activity_id, dayofweek(datetime) as day, avg(duration) as average 
from table_name where datetime between start_date and end_date 
group by activity_id,dayofweek(datetime) 
0

如果我瞭解,您希望按不同的活動時間進行分組,並查看每項活動開始和結束之間的平均天數。這應該爲你做。

SELECT activity_id, avg(DATEDIFF(end_time, start_time)) AS Average 
FROM tablename 
GROUP BY activity_id, DAYOFWEEK(start_time) 

編輯:誤會了,你想讓它按天細分爲好,所以這應該拉各組,按周的天細分的START_TIME下降,然後START_TIME之間的平均天數和end_time。

+0

@dazhuangcao:對,錯過了第一次,但我回去編輯它。 – Robert 2011-05-13 17:58:19

+0

感謝您的迴應,但我需要的是:一週內每天每項活動的平均持續時間。開始/結束時間只是時間戳記錄每個活動的日期。我粗略的想法是:SELECT activity_id,avg(duration)FROM表GROUP BY start_time HAVING start_time BETWEEN(在這裏插入兩個日期); – 2011-05-13 17:59:16

+0

所以......我不理解,我是按活動分組,然後在一週中的某一天開始活動。持續時間與最終開始時間不同嗎?另外,如果你想限制你抽出的幾周,那麼用'WHERE ...'來做。 – Robert 2011-05-13 18:05:45

相關問題