原题目是学生成绩管理系统:查出成绩总和最高的学生的名称及总分数.(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等。 子查询 子查询是指在查询语句中嵌套另一个查询语句,以便更好地筛选和提取数据。子查询可以用来实现复杂的查询操作。 多表查询 多表查询是指对多个表中的数据...
- `SELECT...FROM...`:查询数据,可以配合`GROUP BY`, `HAVING`, `ORDER BY`, `LIMIT`, `DESC`, `ASC`, `COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等子句。 7. **PHP MySQL API**: - `mysql_connect()`:建立数据库...
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, AVG, COUNT, MAX, MIN) 第四章:数据完整性 - 主键与外键 - 索引 - 唯一性约束 - 非空约束 第五章:视图 - 视图的概念 - 创建视图 - 修改与删除视图 - 视图的使用场景 第二部分:进阶篇 ...
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. **索引**: 索引可以加速数据检索,习题...
SELECT语句是SQL中最复杂的部分,它涉及到多表联接、子查询、聚合函数(COUNT,SUM,AVG,MAX,MIN)以及排序和分组。 事务处理是确保数据一致性的重要机制,MySQL 5.7支持ACID(原子性、一致性、隔离性和持久性)...