2014-07-16 386 views
0

您好,我將如何獲得跨記錄的最短時間AVG?SQL查詢中一段時間​​內的平均時間

含義,我有這些記錄:

Id Date Time Amount 
1 7/1/14 9:00am 5.00 
2 7/1/14 8:45am 6.00 
3 7/1/14 9:30am 7.00 
4 7/2/14 8:30am 4.50 
5 7/2/14 9:15am 5.50 
6 7/2/14 7:45am 4.75 

現在我需要的是讓每一天的MIN ......所以在這種情況下,這將是創紀錄的2和6 ,但我想一些如何平均那些時間...意味着上午8:45和上午7:45 ...

我想知道什麼是一段時間內第一次銷售的平均時間。不知道如何平均時間。這麼說來,在給定的時間段,一般第一次銷售時左右說上午8:20(估計)

TX非常多的任何assitance

+1

您正在使用什麼數據庫? –

+1

什麼數據類型用於存儲時間? – swestfall

回答

0

要獲得平均值,請將時間轉換爲秒,計算平均值並將其轉換回時間。

SELECT Id, Date, SEC_TO_TIME(AVG(sec)) 
FROM (SELECT Id, Date, MIN(TIME_TO_SEC(Time)) AS sec 
     FROM YOUR_TABLE 
     GROUP BY Id, Date) AS TABLE1 
GROUP BY Id, Date; 
+0

感謝您的回覆!我看到需要什麼,從日偏移到秒,然後平均,然後重新顯示!我使用訪問,所以實際上我需要做一些有點不同的事情。 – appWoW

2

你可以嘗試這樣的財產以後: -

SELECT Id, Date, AVG(Time) 
FROM (SELECT Id, Date, MIN(Time) AS Time 
     FROM YOUR_TABLE 
     GROUP BY Id, Date) AS TABLE1 
GROUP BY Id, Date; 

這可能對您有所幫助。

0
SELECT Format((AVG(Table1.daTime) /86400),"hh:nn:ss") AS AvgTimeOfFirstTransaction 
FROM (SELECT date, (MIN(Time) *86400) AS daTime 
     FROM transactions 
     WHERE ( (transactions.date)>=#7/1/2014# And (transactions.date)<#7/3/2014#) 
     GROUP BY transactions.date 
) AS TABLE1 
+0

這就是我實際需要訪問的內容。但是我只注意到sec *和/是不需要的,真正缺少的是我使用的格式只是從這兩種解決方案返回到時間。發送給你們兩個。 – appWoW