我不确定这是否可行,我有一个带时间戳的数据表
e.g。
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
我想:
如果可能,我希望在最终结果中实现以下目标
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
如何使用最少的sql查询而不是使用循环来确定?
答案 0 :(得分:0)
试试这个:
SELECT fruitName, MIN(a.timestamp), MAX(a.timestamp)
FROM tableA a
GROUP BY DATE(a.timestamp), fruitName;
答案 1 :(得分:0)
使用MySQL DATE()功能。
SELECT FRUIT_NAME, DATE(mydate) AS dateStamp FROM TABLE
GROUP BY DATE(TABLE.mydate);
其中:
FRUIT_NAME:您的姓名字段
模仿您的日期字段。
答案 2 :(得分: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