【发布时间】:2019-08-14 09:52:18
【问题描述】:
我有一个包含 3 个浮点(可为空)列的表:
Value1 || Value2 || Value3
NULL NULL 100.00
10.00 20.00 NULL
10.00 10.00 100.00
我需要从这些字段中获取平均值 (value1+value2+value3 / 3),但除法器实际上是这些字段中有多少具有值。所以预期的结果是:
Value1 || Value2 || Value3 || AVG
NULL NULL 100.00 100.00 (from 100/1)
10.00 20.00 NULL 15.00 (from 30/2)
10.00 10.00 100.00 40.00 (from 120/3)
有人可以帮忙吗?
我根据这个帖子尝试了一个解决方案: Average of multiple columns
但似乎没有用。
我也尝试在 C# 中处理这个问题,在其中我使用for 循环和一个计数器来确定分隔符,然后将它们分开。它确实有效,但我更喜欢通过查询来处理这个问题,因为当记录超过 3000 行时花费了太多时间。
我当前的查询:
SELECT *,
(SELECT AVG(c)
FROM (VALUES(Value1),
(Value2),
(Value3)) T (c)) AS [Average]
FROM tbl_trans_score
提前致谢。
【问题讨论】:
-
您可以发布您的查询吗?
-
@mkRabbani 抱歉,我编辑了我的帖子
-
看看我的回答.....
标签: sql sql-server select average