2014-10-11 91 views
0

我有下表。第一列是對象ID,然後是對象大小,最後是銷售特定對象的時間。SQL SUM每次DISTINCT值

Object Price   Moment 
    A 100  2014-10-10 22:12:00 
    B 105  2014-10-10 22:12:44 
    A 100  2014-10-10 22:14:12 
    C 203  2014-10-10 22:15:02 
    B 105  2014-10-10 22:17:34 
    D 68  2014-10-10 22:42:01 
    C 203  2014-10-10 22:43:02 

通過使用以下sql,我得到所有對象的價格總和,每15分鐘銷售一次。

SELECT 
Date(Moment) Date, 
sec_to_time(time_to_sec(Moment) - time_to_sec(Moment)%(15*60)) 15MinInterval, 
Sum(Price) PriceSum 
FROM table 
GROUP BY 
    Date, 
    15MinInterval 
ORDER BY 
    Date, 
    15MinInterval 

這種運作良好,而我得到的結果是:

2014-10-10 22:00:00 305 
2014-10-10 22:15:00 308 
2014-10-10 22:30:00 271 

我需要什麼,我無法找到一個方法來做到這一點,是計算所有價格的總和DISTINCT對象,每15分鐘一次。因此,對於特定表格,我需要得到以下結果:

2014-10-10 22:00:00 205 
2014-10-10 22:15:00 308 
2014-10-10 22:30:00 271 

您能否請幫助?

回答

1

嘗試在一個子查詢

SQL小提琴使用DISTINCThttp://sqlfiddle.com/#!2/fc040/9

SELECT 
Date, 
15Interval 15MinInterval, 
Sum(Price) PriceSum 
FROM 
(SELECT DISTINCT 
OBJECT, 
Price, 
Date(Moment) Date, 
sec_to_time(time_to_sec(Moment) - time_to_sec(Moment)%(15*60)) AS 15Interval 
FROM mytable) temp 
GROUP BY 
    Date, 
    15MinInterval 
ORDER BY 
    Date, 
    15MinInterval 

輸出

enter image description here

+1

謝謝您的幫助! 親切的問候 Elias – eliasv 2014-10-11 18:50:30

+0

不客氣 – Ram 2014-10-11 19:06:08