gpt4 book ai didi

sql - SQL Server 2012 中的平均值和案例

转载 作者:行者123 更新时间:2023-12-02 19:05:37 24 4
gpt4 key购买 nike

我想要当列大于零时的平均值。

Select Avg(Case when Column > 0 then Column else 0 end) as Avg

但恐怕 else 子句不正确。我想忽略平均值中的零值。

最佳答案

case 语句 中删除 else 部分,这样小于 1 的值将为 NULL

Null 值将被平均聚合消除。因此,您将得到大于 0 的平均值。试试这个。

Select Avg(Case when [Column]>0 then [Column] end) as [Avg]

演示

case 语句 中没有 else 部分(预期平均值)

SELECT Avg(CASE WHEN a > 0 THEN a END) [Avg]
FROM (SELECT 2 a UNION ALL SELECT 2 UNION ALL SELECT -1) bb

结果:2

case 语句 中的 else 部分。

SELECT Avg(CASE WHEN a > 0 THEN a ELSE 0 END) [Avg]
FROM (SELECT 2 a UNION ALL SELECT 2 UNION ALL SELECT -1) bb

结果:1

关于sql - SQL Server 2012 中的平均值和案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27874303/

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