2014-12-19 73 views
2

我不知道這是否是可行的,我有數據的時間戳選擇數據組並獲得第一和最後一個數據組中

例如表

apple 2013-01-02 06:24:22 
banana 2013-01-12 11:08:22 
apple 2013-01-02 15:24:22 
apple 2013-01-02 12:30:16 
banana 2013-01-14 18:34:22 

我想:

  1. 重新排列數據的基礎上,不同的日期不timetamp,意味着所有的同日將組一起
  2. 如果可能的話我希望能達到以下的最終結果

    apple  2013-01-02 06:24:22 2013-01-02 15:24:22 // get first and last data 
    banana 2013-01-12 11:08:22 2013-01-12 11:08:22 // only one data in the group 
    banana 2013-01-14 18:34:22 2013-01-14 18:34:22 // only one data in the group 
    

我怎樣才能做到這一點具有m最小的sql查詢,而不是使用循環來確定?

回答

0

試試這個:

SELECT fruitName, MIN(a.timestamp), MAX(a.timestamp) 
FROM tableA a 
GROUP BY DATE(a.timestamp), fruitName; 
+0

喜,對於第二部分的任何解決方案?有些團體可能有5-6條記錄,有些可能只有一條 – onegun 2014-12-19 06:41:34

0

使用MySQL DATE()功能。

SELECT FRUIT_NAME, DATE(mydate) AS dateStamp FROM TABLE 
GROUP BY DATE(TABLE.mydate); 

其中:

FRUIT_NAME:你的名字

字段指明MyDate您的日期字段。

+0

謝謝,實際上我更關心的是第二部分問題,你有什麼解決辦法嗎? – onegun 2014-12-19 06:42:08

0

此查詢應該爲您提供所需的信息。 (問題的第二部分)

SELECT Fruit, Min(DateTime) AS FirstDateTime, Max(DateTime) AS LastDateTime FROM Table1 
GROUP BY DATE(DateTime); 

這將使你的輸出

FRUIT  FIRSTDATETIME   LASTDATETTIME 
apple  2013-01-02 06:24:22 2013-01-02 15:24:22 
banana 2013-01-12 11:08:22 2013-01-12 11:08:22 
banana 2013-01-14 18:34:22 2013-01-14 18:34:22 
相關問題