以下是当前行的示例:
id sdate subject exam1 assgn1 overallmark result credits
____________________________________________________________________________
1 082013 Math 40.0 0.00 33 F 7.50
2 082013 Math 0.0 25.00 33 F 7.50
3 082013 Science 80.0 0.00 76 P 7.50
这就是我想要的:
id sdate subject exam1 assgn1 overallmark result credits
____________________________________________________________________________
1 082013 Math 40.0 25.00 33 F 7.50
要点我想将同一主题的多个结果包装成一行,最好的方法是什么?我曾尝试使用GROUP_CONCAT
,但我的mysql知识并不准确。
我一直在使用简单的MySQL查询来在第一个代码块中显示此结果:
SELECT * FROM exam_results WHERE sdate = :sdate AND studno = :studno
修改*
感谢用户@echo_Me,这个解决方案有效:
select id ,sdate,subject,sum(exam1)exam1,sum(assgn1)assgn1,overallmark,result,
credits from exam_results group by studno,subject
但是,在postgres中可以使用相同的语法吗?我如何相应地更改它以适应postgres安装?
答案 0 :(得分:2)
试试:
select id ,sdate,subject,sum(exam1)exam1,sum(assgn1)assgn1,overallmark,result,
credits
from exam_results
group by studno,subject
答案 1 :(得分:0)
我不确定你要尝试的是什么,但你可以看一下关于群组结尾的帖子:CONCAT with GROUP_CONCAT in mysql
根据您的预期结果,我并没有真正看到group_concat需要。如果你想获得exam1的最小值,只需要按积分或sDate,然后选择MIN(exam1)。 如果要在一个中返回来自不同行的值,则使用组串联。例如:总体标记= 33,33,76