gpt4 book ai didi

具有唯一值的 SQL Server COUNT 查询

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

这是在 Microsoft SQL Server 2008 R2 中完成的。

我将从一个示例表开始。

Organization | MoneyAmount | MoneyAmountAvg

ISD | 500 |
ISD | 500 |
ISD | 500 |
QWE | 250 |
ISD | 500 |
QWE | 250 |
OLP | 800 |
ISD | 500 |

我需要 MoneyAmountAvg 列的值为 MoneyAmount/(# of times that organization shows up

例如,ISD 行的 MoneyAmountAvg 列的值为 100

QWE 将为 MoneyAmountAvg 列中的每一行提供 125,而 OLP 的值为 < strong>800 因为它只存在一次。

这只是一个示例表。实际的表要大得多,有更多的组织,但它有相同的标准。一些组织有多个行,而其他组织只有一次。

当我对组织的 MoneyAmountAvg 列使用更新语句时,我只需要一种方法来计算每个组织被列出的次数。为每个组织硬编码绝对不是一种选择,因为它们可以随时更改。

感谢任何帮助。

最佳答案

这是我的答案:

select organization, moneyamount,
moneyamount / count(*) over (partition by organization)
from t

这是一个窗口函数的简单应用。我认为大多数其他答案都产生了总体平均值。

对于更新语句,只需执行:

 with toupdate as (
select organization, moneyamount,
moneyamount / count(*) over (partition by organization) as newval
from t
)
update toupdate
set MoneyAmountAvg = newval

关于具有唯一值的 SQL Server COUNT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15162352/

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