原题目是学生成绩管理系统:查出成绩总和最高的学生的名称及总分数.(MYSQL)
成绩表:
<hibernate-mapping auto-import="false">
<class name="org.hibernate.solution.studentcourse.Score" table="sc_score">
<id name= "scoreId">
<generator class="native"/>
</id>
<many-to-one name="student" column="studentid"/>
<many-to-one name="course" column="courseid"/>
<property name="scoreValue" />
</class>
</hibernate-mapping>
学生表:
<hibernate-mapping auto-import="false">
<class name="org.hibernate.solution.studentcourse.Student" table="sc_student">
<id name="studentNo">
<generator class="native"/>
</id>
<property name="studentName" />
<property name="sex" />
</class>
</hibernate-mapping>
我尝试用以下语句查询:
select studentid,studentName,max(sumScoreValue) from
(
select sum(scoreValue) as sumScoreValue, a.studentid,b.studentName
from sc_score a , sc_student b
where a.studentid = b.studentNo group by studentid
)table1
得到的结果 max(sumScoreValue)正确取得最高分数,但是studentid,studentName是默认第一个学生的数值。
无柰之下,我用以下语句进行查询:
select max(sumScoreValue) as sumScoreValue, studentid,studentName from (
select sum(scoreValue) as sumScoreValue, a.studentid,b.studentName
from sc_score a , sc_student b
where a.studentid = b.studentNo group by studentid
)table1 where sumScoreValue = (
select max(scoreValue) from (
select sum(scoreValue) as scoreValue from sc_score group by studentid
)table2
)
上面那语句肯定不行的,这问题说白了就是max(sum(scoreValue)),但是MySQL好象不支持。
哪位大侠可以帮忙写个SQL语句?
分享到:
相关推荐
在MySQL数据库中,`LIMIT` 与聚合函数如 `SUM()` 混合使用时,可能会引发一些预期之外的问题。本文将深入探讨这个问题,并提供解决方案。 首先,让我们回顾一下问题的背景。假设我们有一个名为 `order` 的订单表,...
本文将探讨在MySQL 8.0.20版本中使用窗口函数`SUM`时出现的一个潜在bug,以及如何理解和解决这个问题。 首先,我们创建一个名为`Score`的成绩表,包含学生的ID(`s_id`)、课程的ID(`c_id`)和学生的分数(`s_...
6. 集合函数:如COUNT()统计数量,SUM()求和,AVG()计算平均值,MIN()和MAX()找出最小和最大值。 7. 位操作函数:如BIT_AND()、BIT_OR()和BIT_XOR()用于进行二进制位运算。 8. 信息函数:如DATABASE()返回当前...
更复杂的操作涉及JOIN用于合并多表数据,WHERE和HAVING用于过滤结果,GROUP BY和聚合函数(如COUNT, SUM, AVG, MAX, MIN)用于分组和汇总数据。 5. **安全性**:在使用MySQL时,要关注数据安全,例如定期备份,限制...
SUM 函数用于计算数据的总和,MAX 函数用于取得最大值,COUNT 函数用于计算数据的行数,AVG 函数用于计算数据的平均值。 2.游标声明 在 MySQL 中,DECLARE CURSOR 语句用于声明游标。游标用于在 SELECT 语句中...
它支持各种选择条件(WHERE子句)、排序(ORDER BY子句)、分组(GROUP BY子句)和聚合函数(如COUNT(), SUM(), AVG(), MAX(), MIN())。 3. 更新数据:UPDATE语句用于修改已存在的记录。 4. 删除数据:DELETE FROM...
在 MySQL 中,常用的聚集函数有 AVG、COUNT、MAX、MIN、SUM 等。这些函数可以对查询结果进行统计和分析。 8. COUNT(*)与 COUNT(列名)的区别? 答:COUNT(*)不忽略值为 NULL 的列;COUNT(列名)忽略值为 NULL 的列; ...
常见的聚合函数包括SUM、AVG、MAX、MIN、COUNT等。 子查询 子查询是指在查询语句中嵌套另一个查询语句,以便更好地筛选和提取数据。子查询可以用来实现复杂的查询操作。 多表查询 多表查询是指对多个表中的数据...
10. SQL语句的使用:包括基础的SELECT语句,以及如何通过WHERE子句进行条件过滤、使用ORDER BY进行排序、使用聚合函数(如SUM、AVG、MAX、MIN)计算数据、使用GROUP BY进行分组等高级查询。 以上就是从提供的文件...
MYSQL数核心技术,数据库的安装,SQL的语言分类##### 、数学函数 ``` round 四舍五入 rand 随机数 floor向下取整 ceil向上取整 mod取余 truncate截断 ##### 3、日期函数 now当前系统日期+时间 curdate当前...
5. **练习查询**:生成的虚拟数据可以用于练习复杂的SQL查询,例如多表联接(JOIN)、子查询、聚合函数(COUNT, SUM, AVG, MAX, MIN)以及排序和分组(ORDER BY, GROUP BY)。 6. **索引概念**:学习如何为表的特定...
- 分组与聚合函数:GROUP BY、HAVING和聚合函数(如COUNT, SUM, AVG, MAX, MIN)用于统计和分析数据。 2. **存储过程与函数**: - 存储过程:预编译的SQL语句集合,可以提高执行效率,减少网络传输。 - 用户定义...
1. 聚合函数:本试题中涵盖了MAX、SUM、COUNT、AVG等聚合函数的使用。 2. 游标:试题中涉及到DECLARE CURSOR语句的使用,用于声明游标。 3. SELECT语句:试题中涵盖了SELECT语句的完整语法,包括SELECT、FROM、...
SUM(水量统计值) AS 用水量, 上数天数 FROM ( SELECT t2.仪表编码, t2.仪表名称 AS 流量计名称, t2.行政, SUBSTRING(CONVERT(VARCHAR(10), t1.起始时间, 120), 1, 10) AS 起始时间, t1.起始表码字, ...
4. **查询语句**: SELECT语句是SQL中最常用的部分,可能的习题会涉及单表查询、连接查询(JOIN)、子查询、分组(GROUP BY)和聚合函数(COUNT、SUM、AVG、MAX、MIN)。 5. **索引**: 索引可以加速数据检索,习题...
掌握聚合函数(COUNT、SUM、AVG、MAX、MIN)以及WHERE、HAVING子句的用法。 6. **索引和性能优化**:理解索引的作用,如何创建(单列、多列、全文索引等)和使用,以及如何通过EXPLAIN分析查询性能。 7. **视图和...
SQL提供丰富的操作符(如比较操作符、逻辑操作符、算术操作符)和函数(如聚合函数SUM、AVG、MAX、MIN,字符串函数CONCAT、SUBSTRING,日期时间函数DATE_FORMAT等),帮助我们进行复杂的数据处理。 七、事务与并发...