0

我试图创建一个 sql 视图,它需要计算具有相同内容的列数

例如

UID    person1_score    person2_score    person3_score    person4_score    person5_score    person6_score
1      1                1                1                1                2                2

最终输出将是

UID    person1_score    person2_score    person3_score    person4_score    person5_score    person6_score    score_with_1    score_with_2
1      1                1                1                1                2                2                4               2 

在最终输出列(score_with_1 和 score_with_2)中计算了该行中得分为“1”或“2”的人数

有没有办法做到这一点?

4

1 回答 1

0

尝试这个

CREATE VIEW view_Name AS
SELECT UID,    
       person1_score,
       person2_score,
       person3_score,
       person4_score,
       person5_score,
       person6_score 
       (SUM(CASE WHEN person1_score=1 THEN 1 ELSE 0 END)+
        SUM(CASE WHEN person2_score=1 THEN 1 ELSE 0 END)+
        SUM(CASE WHEN person3_score=1 THEN 1 ELSE 0 END)+
        SUM(CASE WHEN person4_score=1 THEN 1 ELSE 0 END)+
        SUM(CASE WHEN person5_score=1 THEN 1 ELSE 0 END)+
        SUM(CASE WHEN person6_score=1 THEN 1 ELSE 0 END))
       AS score_with_1,
       (SUM(CASE WHEN person1_score=2 THEN 1 ELSE 0 END)+
         SUM(CASE WHEN person2_score=2 THEN 1 ELSE 0 END)+
         SUM(CASE WHEN person3_score=2 THEN 1 ELSE 0 END)+
         SUM(CASE WHEN person4_score=2 THEN 1 ELSE 0 END)+
         SUM(CASE WHEN person5_score=2 THEN 1 ELSE 0 END)+
         SUM(CASE WHEN person6_score=2 THEN 1 ELSE 0 END))
      AS score_with_2
FROM Table t
于 2013-08-12T05:04:11.850 回答