2012-11-27 98 views
3

我有一個表,看起來像這樣集團銷售額星期

sell_price double  buy_price double  time int(11) 
31.5      20.5     1353755931 (2012-11-27) 
20      10.5     1353755235 (2012-11-27) 
40      30     1353752531 (2012-11-26) 
50      25     1353751237 (2012-11-26) 
40      10     1353745609 (2012-11-25)   

,我試圖將所有的值來獲得一週的每一天的銷售,所需的表應該像下面這樣:

sell_price double  buy_price double  time int(11) 
51.5      30.5     1353755931 (2012-11-27) 
90      55     1353755931 (2012-11-26) 
40      10     1353755931 (2012-11-25) 

我嘗試下面的查詢,但我似乎有問題分組

SELECT sell_price, buy_price, time 
FROM sales 
GROUP BY DAY(time) 
ORDER BY time DESC 

以上查詢僅返回1行

31.5  20.5  1353755931 

實現此目的的正確方法是什麼?

+0

是否保存爲UnixTime? –

+0

你得到的輸出是什麼? – Nalaka526

+0

是的,它是一個unix時間戳(上表是一個例子) –

回答

2
SELECT DATE(FROM_UNIXTIME(time)) time, 
     SUM(sell_price), 
     SUM(buy_price) 
FROM tableName 
GROUP BY DATE(FROM_UNIXTIME(time)) 
+0

它沒有給出預期的結果。檢查這個小提琴鏈接http://sqlfiddle.com/#!2/62b50/1 – AnandPhadke

+0

@AnandPhadke是的,問題是他們都只是一個日期('11月,24日2012')在不同的時間,你知道如何結果出來了嗎? –

+0

這看起來不錯,它運作良好 –

0

正如你可以看到this fiddle

SELECT 
      sell_price, 
      buy_price, 
      time, 
      day(time) 
    FROM 
     sales 

day(time)計算結果爲null和,因爲你指定你得到的只是一切的第一行的價格沒有aggratetion功能。如果你檢查this fiddle

SELECT 
      sell_price, 
      buy_price, 
      date(from_unixtime(time)) 
    FROM 
     sales; 

您會看到所有的數據都在同一天,假設這些數字是有效的unix時間。