-2

我需要使用 max(timestamp) 为每个不同的帐户 (acc) 获取 bal 和 res 列之间的总和,看看这个:

  ID    ACC BAL RES TIMESTAMP
  --------------------------
  1 100 70  0   1430238709
  2 101 4   0   1430238710
  3 102 0   0   1430238720
  4 103 3   1   1430238721
  5 100 22  1   1430238731
  6 101 89  0   1430238732
  7 102 101 1   1430238742
  8 103 105 1   1430238753
  9 100 106 0   1430238763
 10 101 100 1   1430238774
 11 102 1   1   1430238784
 12 103 65  0   1430238795

我需要的是这样的MAX(timestamp) <= 1430238763sum: bal + res按 acc 分组:

ACC TOT
-------
100 106
101 89
102 102
103 106

我知道如何使用子查询来做到这一点,但我想尝试分析。

问候

4

2 回答 2

0

没有子查询,您的查询无法解决。

select acc,sum(bal + res) from table_name where timestamp in
(通过具有 hax(timestamp)<=1430238763 的 acc 从 table_Name 组中选择 acc,max(timestamp))
问候。

于 2015-04-29T12:50:14.183 回答
0

怎么样:

Select * from ( Select t.*, max(TIMESTAMP) over (partition by id) mx from tab t ) where mx=TIMESTAMP;

hth

于 2015-04-28T17:59:57.950 回答