gpt4 book ai didi

SQL - 如何添加具有平均值的列,分组

转载 作者:行者123 更新时间:2023-12-05 03:11:41 27 4
gpt4 key购买 nike

基本上,我从 TABLE_A 中的这个开始

France - 100

France - 200

France - 300

Mexico - 50

Mexico - 50

Mexico - 56

Poland - 100

Poland - 150

最后我想要的是一个添加的列,其中包含按国家/地区划分的平均值。

France - 100 - 200

France - 200 - 200

France - 300 - 200

Mexico - 500 - 520

Mexico - 500 - 520

Mexico - 560 - 520

Poland - 100 - 125

Poland - 150 - 125

我想通过更新/更改 TABLE_A 来做到这一点,如果可能的话不创建新表。我在甲骨文工作。感谢您的任何想法!

最佳答案

您可以使用 avg() over()。我没有看到存储这些计算列的原因。每次添加新行或表中的行更新时,它们都必须更新。

select t.*, avg(val) over(partition by country) average
from yourtable t

要将其添加为列,请执行以下操作:

alter yourtable add average number(10,2);

commit;

update yourtable t
set t.average = (select avg(val)
from yourtable
where country = t.country)
;

commit;

关于SQL - 如何添加具有平均值的列,分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36340497/

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