mysql - 对单个 MYSQL 表中的多列求和

标签 mysql

+---------+------------+------------+-----------------------+-----------------+---------------------+
| exam_id | student_id | subject_id | assignment_mark_total | test_mark_total | exams_mark_obtained |
+---------+------------+------------+-----------------------+-----------------+---------------------+
|       1 |         19 |          1 |                    20 |              30 |                  50 |
|       1 |         20 |          1 |                    18 |              27 |                  48 |
|       1 |         21 |          1 |                    16 |              27 |                  49 |
|       1 |         22 |          1 |                    16 |              29 |                  47 |
|       1 |         23 |          1 |                     0 |               0 |                   0 |
|       1 |         24 |          1 |                     0 |               0 |                   0 |
|       1 |         25 |          1 |                     0 |               0 |                   0 |
|       1 |         26 |          1 |                     0 |               0 |                   0 |
|       1 |         27 |          1 |                     0 |               0 |                   0 |
|       1 |         28 |          1 |                     0 |               0 |                   0 |
|       1 |         29 |          1 |                     0 |               0 |                   0 |
|       1 |         30 |          1 |                     0 |               0 |                   0 |
|       1 |         31 |          1 |                     0 |               0 |                   0 |
|       1 |         32 |          1 |                     0 |               0 |                   0 |
|       1 |         33 |          1 |                     0 |               0 |                   0 |
|       1 |         34 |          1 |                     0 |               0 |                   0 |
|       1 |         35 |          1 |                     0 |               0 |                   0 |
|       1 |         36 |          1 |                     0 |               0 |                   0 |
|       1 |         37 |          1 |                     0 |               0 |                   0 |
|       1 |         38 |          1 |                     0 |               0 |                   0 |
|       1 |         39 |          1 |                     0 |               0 |                   0 |
|       2 |         19 |          1 |                    20 |              21 |                  49 |
|       2 |         20 |          1 |                    20 |              21 |                  50 |
|       2 |         21 |          1 |                    16 |              27 |                  46 |
|       2 |         22 |          1 |                     0 |               0 |                   0 |
|       2 |         23 |          1 |                     0 |               0 |                   0 |
|       2 |         24 |          1 |                     0 |               0 |                   0 |
|       2 |         25 |          1 |                     0 |               0 |                   0 |
|       2 |         26 |          1 |                     0 |               0 |                   0 |
|       2 |         27 |          1 |                     0 |               0 |                   0 |
|       2 |         28 |          1 |                     0 |               0 |                   0 |
|       2 |         29 |          1 |                     0 |               0 |                   0 |
|       2 |         30 |          1 |                     0 |               0 |                   0 |
|       2 |         31 |          1 |                     0 |               0 |                   0 |
|       2 |         32 |          1 |                     0 |               0 |                   0 |
|       2 |         33 |          1 |                     0 |               0 |                   0 |
|       2 |         34 |          1 |                     0 |               0 |                   0 |
|       2 |         35 |          1 |                     0 |               0 |                   0 |
|       2 |         36 |          1 |                     0 |               0 |                   0 |
|       2 |         37 |          1 |                     0 |               0 |                   0 |
|       2 |         38 |          1 |                     0 |               0 |                   0 |
|       2 |         39 |          1 |                     0 |               0 |                   0 |
|       3 |         19 |          1 |                     0 |              27 |                  36 |
|       3 |         20 |          1 |                     0 |              24 |                  41 |
|       3 |         21 |          1 |                     0 |              25 |                  48 |
|       3 |         22 |          1 |                     0 |               0 |                   0 |
|       3 |         23 |          1 |                     0 |               0 |                   0 |
|       3 |         24 |          1 |                     0 |               0 |                   0 |
|       3 |         25 |          1 |                     0 |               0 |                   0 |
|       3 |         26 |          1 |                     0 |               0 |                   0 |
|       3 |         27 |          1 |                     0 |               0 |                   0 |
|       3 |         28 |          1 |                     0 |               0 |                   0 |
|       3 |         29 |          1 |                     0 |               0 |                   0 |
|       3 |         30 |          1 |                     0 |               0 |                   0 |
|       3 |         31 |          1 |                     0 |               0 |                   0 |
|       3 |         32 |          1 |                     0 |               0 |                   0 |
|       3 |         33 |          1 |                     0 |               0 |                   0 |
|       3 |         34 |          1 |                     0 |               0 |                   0 |
|       3 |         35 |          1 |                     0 |               0 |                   0 |
|       3 |         36 |          1 |                     0 |               0 |                   0 |
|       3 |         37 |          1 |                     0 |               0 |                   0 |
|       3 |         38 |          1 |                     0 |               0 |                   0 |
|       3 |         39 |          1 |                     0 |               0 |                   0 |
+---------+------------+------------+-----------------------+-----------------+---------------------+
63 rows in set (0.00 sec)

您好,我有一个学校报告表的示例数据库,我希望能够获得一个数组结果,其中包含 3 个学期的各个科目的总和

我希望得到这样的结果,即每个科目 (assignment_mark_total + test_mark_total + exams_mark_obtained) AS 分数的总和,其中 exam_id =1&2&3

+--------+
| scores |
+--------+
|    253 |
|    249 |
|    254 |
|     92 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
|      0 |
+--------+

最佳答案

我假设您正在查找每个学生 3 次考试的总分。尝试这个查询:

SELECT
    SUM(assignment_mark_total + test_mark_total + exams_mark_obtained) AS scores
FROM
    table_name
WHERE
    exam_id in (1, 2, 3)
GROUP BY 
    student_id

您可能还想在所选列列表中添加 student_id

关于mysql - 对单个 MYSQL 表中的多列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458456/

相关文章:

mysql - 如何在没有连续切割的情况下使用 mysql group_concat(concat())

mysql - 全文判断匹配字段

mysql - 如何排除 tableA 的选择查询中的记录,其中 tableA.user_id 在 user.id 中不存在

mysql - 表中的最大列数

mysql - 您可以在 MySQLi 查询中使用超过 1 个案例吗?

如果选择值大于 0,MySql INNER JOIN

sql - 在大表上使用 AVG() 和 group by 优化查询?

javascript - 将 MYSQL 的返回值传递给函数

mysql - 从 MySQL 的一个表中选择某些列并从另一表中选择计数

mysql - 以随时间降低的精度存储统计数据