我有这个
------------------------------------
course_id | total marks | year
------------------------------------
1 50 1 -------> I want to remove this from the sum
2 50 1
3 50 1
1 100 2
------------------------------------
我真的不知道如何做到这一点,
我有3个不同的课程, 我希望获得总分数的总和,但考虑到最大年份数,我会得到一个截然不同的course_id,结果应该是200,谢谢你提前
答案 0 :(得分:2)
您需要使用子查询来确定每个课程的最大年份,然后再次将其与表格连接以获得标记:
SELECT SUM(`total marks`)
FROM `table`
NATURAL JOIN (
SELECT course_id, MAX(year) AS year
FROM `table`
GROUP BY course_id
) AS y
在sqlfiddle上查看。
答案 1 :(得分:2)
这很简单:
SELECT SUM(m) FROM (
SELECT total_marks AS m
FROM table AS t
WHERE year = (
SELECT MAX(year)
FROM table
WHERE course_id = t.course_id
)
) AS v