【发布时间】:2013-05-22 16:14:16
【问题描述】:
另一个 SQL 问题。我有以下查询:
SELECT EXTRACT(epoch from dt) as diff
from (
SELECT time_col - lag(time_col) OVER dt
FROM myTable where elementID=1234
) as dt
这计算时间差,我得到例如ElementID1234的结果如下表:
34
345
6
2
...
但是,我想对存储在表 elementTable 中的每个元素 ID 执行此操作。这是我的方法:
SELECT EXTRACT(epoch from dt) as diff
from (
SELECT time_col - lag(time_col) OVER dt
FROM myTable where elementID=any(select elementID from elementTable)
) as dt
这与想要的结果非常接近,但是我将所有内容都放在一个列中。例如
34 <- For element id = 1234
345 <- For element id = 1234
6 <- For element id = 1234
2 <- For element id = 1234
83 <- For element id = x
4 <- For element id = x
6 <- For element id = x
...
我想要的是这个(按元素 id 在列中排序):
1234 | x | ...
------------------
34 83 ...
345 4 ...
6 6 ...
2
很抱歉用我的 SQL 问题打扰您,我正在努力学习...
【问题讨论】:
标签: sql postgresql any