8 sql oracle data-warehouse analytic-functions
我正在编写一个查询来从Oracle仓库中获取记录.它是一个简单的Select Query,在几个表上有连接,我有很少的列要聚合.因此,我最终在其余列上使用Groupby.
假设我正在挑选大约10列,其中5列是聚合列.所以我需要在其他5列上分组.我甚至可以通过不执行Groupby并在我想要派生的每个聚合列上使用over(paritition by)子句来实现相同目的.
我不确定哪个更适合仓库或一般.
Ton*_*ews 20
他们不一样.
这将返回3行:
select deptno, count(*) c from emp group by deptno;
DEPTNO C
------ -
10 3
20 5
30 6
Run Code Online (Sandbox Code Playgroud)
这将返回14:
select deptno, count(*) over (partition by deptno) c from emp;
DEPTNO C
------ -
10 3
10 3
10 3
20 5
20 5
20 5
20 5
20 5
30 6
30 6
30 6
30 6
30 6
30 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30707 次 |
| 最近记录: |