gpt4 book ai didi

sql - 在Oracle中按分组与分区

转载 作者:行者123 更新时间:2023-12-04 04:53:52 25 4
gpt4 key购买 nike

我正在编写查询以从Oracle仓库中获取记录。它是一个简单的Select Query,在几个表上有联接,我几乎没有要聚合的列。因此,我最终在其余的列上使用了Groupby。

假设我要选择10列,其中5列是汇总列。所以我需要按其他5列分组。我什至可以通过不执行Groupby并在我要派生的每个聚合列上使用over(paritition by)子句来实现相同的目的。

我不确定哪个对仓库还是一般来说更好。

最佳答案

她们不一样。

这将返回3行:

select deptno, count(*) c from emp group by deptno;

DEPTNO C
------ -
10 3
20 5
30 6

这将返回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

关于sql - 在Oracle中按分组与分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com