我试图创建一个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”的人数
有没有办法让这种情况发生?
答案 0 :(得分: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