多列求和计数

问题描述 投票:0回答:1

我需要在 SQL 中更改什么才能将分组到 project_ref 中的 msr_cnt 字段求和?

    select      m.project_ref,
            (   select count(*)
                from (values (m.[EWI/IWI]), (m.Glazing), (m.Solar), (m.CWI), (m.Boiler), (m.TRV), (m.LI), (m.RIRI), (m.UFI), (m.ASHP)) as v(col)
                where v.col <> ''
            ) as 'msr_cnt'
from        SMSDB1.dbo.ops_measure m
where       'msr_cnt' <> '0'
--group by  m.project_ref

当前输出为

项目参考 msr_cnt
WHGSHDF 2
WHGSHDF 2
WHGSHDF 2
WHGSHDF 2
WHGSHDF 2
WHGSHDF 2
WHGSHDF 2

我需要它来展示

项目参考 msr_cnt
WHGSHDF 14

我就是无法完全理解它。

sql sql-server count sum
1个回答
0
投票

如果没有一组适当的源数据、MRE 等,很难回答,但我认为这应该可行:

select
    m.project_ref,
    sum (select count(*)
         from (values (m.[EWI/IWI]), (m.Glazing), (m.Solar), (m.CWI), (m.Boiler), (m.TRV), (m.LI), (m.RIRI), (m.UFI), (m.ASHP)) as v(col)
         where v.col <> ''
    ) as msr_cnt
from SMSDB1.dbo.ops_measure m
where msr_cnt <> '0'
group by m.project_ref
© www.soinside.com 2019 - 2024. All rights reserved.