2015-02-10 63 views
0

我在表中将以下数据集作为示例。 对不起,我是一个新手,不知道表格的markdown语法。MySQL:通过转到特定行并检索特定行中的列值来分析表数据

我的数据样品低于

## Data Table t ## 
| idS_Data | S_id | S_dateTime  | value | 
|:--------:|------|----------------|-------| 
| 1  | 153 | 5/6/2014 7:00 | 1  | 
| 2  | 153 | 5/6/2014 12:00 | 1  | 
| 3  | 154 | 5/6/2014 14:00 | 1  | 
| 4  | 154 | 5/6/2014 14:30 | 1  | 
| 5  | 156 | 5/6/2014 15:30 | 1  | 
| 6  | 156 | 5/6/2014 16:30 | 1  | 

预期结果

我希望得到以下结果

S_id |Time Difference 
153 |05:00:00 
154 |00:30:00 
156 |01:00:00 

如何?

这是如何实现的? 我的数据集非常大,我需要按顺序处理该行。

伪代码

我04-0030-03代码如下:

  1. 开始在第一行与S_ID = FIRST_ROW值山口S_ID
  2. Retrive S_datetime为T1该行
  3. 转到最后在S_id更改其值的位置之前的行(例如,当S_id在我的示例数据中变为154时,第3行)
  4. 检索日期时间t2 =原始S_id在第一行中的最后一行。 (在采样数据行2)
  5. 计算timeDiff测量= T2-T1

继续上面用于从其中排在下一个S-ID开始(例如154)的剩余的行。

这是如何实现的?

任何帮助善良赞赏。

提前致谢!

回答

0
SELECT S_id ,TIMEDIFF(MAX(S_dateTime),MIN(S_dateTime)) 
FROM t 
GROUP BY S_id