如何在单个查询中找到类似MySQL的db中2次之间的差异

时间:2010-06-18 09:46:08

标签: mysql

我有一个包含以下架构的表:

+------------------+
|Field  | Type     |
+------------------+
| id    | char(30) |
| time  | datetime |
+------------------+

id列不是主键,因此该表包含以下条目:

10, 2010-05-05 20:01:01
10, 2010-05-05 20:01:05
13, 2010-05-05 20:04:01
10, 2010-05-05 20:04:10
13, 2010-05-05 20:05:03
10, 2010-05-05 20:05:28

我想找到给定id的时间差异,即期望的结果是:

10, 00:04:27
13, 00:01:02

我可以在MySQL中使用以下查询来执行此操作:

SELECT t2.id, TIMEDIFF(t2.max, t2.min) AS visit_length FROM
(
  SELECT id, MAX(time) AS max, MIN(time) AS min FROM page_view 
  GROUP BY id
) AS t2

但是,我使用的引擎是MySQL衍生产品,它不支持子查询。

有没有办法在不使用子查询的情况下使用单个查询获得相同的结果?

由于

2 个答案:

答案 0 :(得分:0)

select max(time)-min(time), id
from page_view
group by id

答案 1 :(得分:0)

这会有用吗?

SELECT TIMEDIFF(MAX(time), MIN(TIME)) AS visit_length
FROM page_view
GROUP BY(id)