[英]Consolidate Rows with SQL
试图合并测试结果,使每个测试都排成一行。 我从中提取的数据库每行都有一个答案结果。 样本数据:
学生姓名 | 测试名称 | 问题尝试 | 正确回答(0 = 否,1 = 是) |
---|---|---|---|
玛丽 | 介绍评估 | 1 | 1 |
玛丽 | 介绍评估 | 1 | 0 |
玛丽 | 介绍评估 | 1 | 1 |
约瑟夫 | 介绍评估 | 1 | 1 |
约瑟夫 | 介绍评估 | 1 | 1 |
约瑟夫 | 介绍评估 | 1 | 1 |
汤姆 | 介绍评估 | 1 | 0 |
汤姆 | 介绍评估 | 1 | 0 |
汤姆 | 介绍评估 | 1 | 1 |
如果可能的话,期望的结果:
学生姓名 | 测试名称 | 问题尝试 | 正确回答 |
---|---|---|---|
玛丽 | 介绍评估 | 3 | 2 |
约瑟夫 | 介绍评估 | 3 | 3 |
汤姆 | 介绍评估 | 3 | 1 |
任何指导将不胜感激。
听起来您只想要一个带有一些SUM
的基本GROUP BY
:
SELECT "Student Name", "Test Name"
, SUM("Question Attempt") "Question Attempt"
, SUM("Answered Correctly") "Answered Correctly"
FROM mytable
GROUP BY "Student Name", "Test Name"
GROUP BY "Student Name", "Test Name"
表示您希望每个唯一的学生/测试有一行, SUM
说明您希望如何组合其他数据。
select student_name, test_name
, count(question_attempt), sum(answered_correctly)
from table
group by student_name, test_name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.