MySQL:通过转到特定行并检索特定行中的列值来分析表数据

时间:2015-02-10 21:00:45

标签: mysql algorithm

我将以下数据集作为表格中的示例。 对不起,我是新手,还不知道桌子的markdown语法。

我的数据样本位于

之下
## 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 

怎么样?

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

伪代码

我的pesudo代码如下:

  1. 从第一行开始,在Col S_id
  2. 中使用S_id = First_row值
  3. 将S_datetime作为该行的t1进行处理
  4. 转到S_id更改其值之前的最后一行(例如,当我的示例数据中S_id变为154时第3行)
  5. 检索日期时间t2 =第一行中原始S_id的最后一行。 (样本数据中的第2行)
  6. 计算timediff = t2-t1
  7. 继续上面的下一个S-id开始行的其余行(例如154)。

    如何实现这一目标?

    任何帮助都很感激。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

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