【发布时间】:2014-06-23 09:14:06
【问题描述】:
以下是当前行的一个示例:
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 安装?
【问题讨论】:
-
你真的认为为同一个学生插入2行来存储
exam1和assgn1标记是必要的,如果不是,那么为每个学生只插入一行,你的问题就解决了跨度> -
不幸的是,我无法控制数据库架构或结果的插入方式。
标签: mysql postgresql