如何解决计算SQL Server中同一行中的值
我的SQL Server问题如下:假设我们有客户,我们希望基于4个类别(Score_1 ... Score_4)以0到2的等级对它们进行评分。我有一个下表:>
我想要我的代码执行的工作是计算每个接收到的客户的0、1和2个值的数量。我想要的结果表如下:
因此,client_1得到2个0分数,一个1分和1个2分,client_2得到1个0分数,一个1分和2个2分。有什么建议?预先感谢!
解决方法
您可以先取消透视,然后进行条件聚合:
select t.id,sum(case when x.score = 0 then 1 else 0 end) cnt_0,sum(case when x.score = 1 then 1 else 0 end) cnt_1,sum(case when x.score = 2 then 1 else 0 end) cnt_2
from mytable t
cross apply (values (score_1),(score_2),(score_3),(score_4)) x(score)
group by t.id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。