我需要使用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) <= 1430238763
,sum: bal + res
按照以下方式分组:
ACC TOT
-------
100 106
101 89
102 102
103 106
我知道如何使用子查询来完成它,但我想尝试分析。
此致
答案 0 :(得分:0)
怎么样:
选择*来自( 选择t。*,max(TIMESTAMP)over(partition by id)mx 来自tab t ) 其中mx = TIMESTAMP;
HTH
答案 1 :(得分:0)
如果没有子查询,您的查询就无法解决。
select acc,sum(bal + res) from table_name where timestamp in (select acc,max(timestamp) from table_Name group by acc having hax(timestamp)<=1430238763)问候。