SELECT dept, name sal,
SUM (sal) OVER (PARTITION BY dept ORDER BY name) running_sal,
SUM (sal) OVER (PARTITION BY dept) sum
FROM 表;
这个是用SUM OVER做的,有没有不用SUM OVER做的?
谢谢大虾了
SUM (sal) OVER (PARTITION BY dept ORDER BY name) running_sal,
SUM (sal) OVER (PARTITION BY dept) sum
FROM 表;
这个是用SUM OVER做的,有没有不用SUM OVER做的?
谢谢大虾了
from test t1,test t2,(select dept,sum(sal) sum from test group by dept) t3
where t1.dept=t2.dept and t1.name>=t2.name and t1.dept=t3.dept
group by t1.dept,t1.name,t3.sum
where t1.dept=t2.dept and t1.name>=t2.name and t1.dept=t3.dept
group by t1.dept,t1.name,t3.sum
没看懂
将T3中符合t1.dept=t3.dept的记录检索出来,
再将符合t1.dept=t2.dept and t1.name>=t2.name的检索出来
这个比较:比如dept=1的记录,当t1.dept=1 and t1.name=a 时
t2.dept=1, 同时根据t1.name>=t2.name,t2.name=a,sum(t2.sal)=100
当t1.dept=1 and t1.name=b时,t2.name=a或者b ,sum(t2.sal)=100+300
依次类推
这里t3跟t2基本没关系