使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题
来源:互联网 发布:优盘数据恢复实例 编辑:程序博客网 时间:2024/05/18 02:09
网上也有解决方案 有的有瑕疵 有的较复杂(mysql没有分析函数,可以使用变量实现)
- select sumScoreValue,studentid,studentName from sc_student b,
- (select sum(scoreValue) as sumScoreValue, studentid
- from sc_score group by studentid
- order by sumScoreValue desc limit 1) as a
- where a.studentid=b.studentNo
- mysql> select studentid,scoreValue from sc_score;
- +-----------+------------+
- | studentid | scoreValue |
- +-----------+------------+
- | 1 | 80 |
- | 1 | 85 |
- | 1 | 90 |
- | 2 | 75 |
- | 2 | 80 |
- | 2 | 84 |
- | 3 | 85 |
- | 3 | 85 |
- | 3 | 85 |
- +-----------+------------+
- 9 rows in set (0.00 sec)
- mysql> SELECT studentNo,studentName FROM sc_student;
- +-----------+-------------+
- | studentNo | studentName |
- +-----------+-------------+
- | 1 | aa |
- | 2 | bb |
- | 3 | cc |
- +-----------+-------------+
- 3 rows in set (0.00 sec)
- mysql> SELECT a.studentid,
- -> b.studentName,
- -> a.sumScoreValue
- -> FROM (SELECT tmp.studentid,
- -> tmp.sumScoreValue,
- -> IF(@groupid = tmp.sumScoreValue,@rank := 1,@rank := @rank + 1) AS rank,
- -> @groupid := tmp.sumScoreValue
- -> FROM (SELECT studentid,
- -> SUM(scoreValue) AS sumScoreValue
- -> FROM sc_score
- -> GROUP BY studentid
- -> ORDER BY scoreValue DESC) tmp,
- -> (SELECT @rank := 0,@groupid := '') m) a,
- -> sc_student b
- -> WHERE a.studentid = b.studentNo
- -> AND a.rank = 1;
- +-----------+-------------+---------------+
- | studentid | studentName | sumScoreValue |
- +-----------+-------------+---------------+
- | 3 | cc | 255 |
- | 1 | aa | 255 |
- +-----------+-------------+---------------+
- 2 rows in set (0.00 sec)
自己重新做了
select s.id,s.stuid,stu.stuname, sumscore
from score s left join student stu on s.stuid = stu.stuid left join (select s.id,s.stuid,stu.stuname,sum(s.score) as sumscore
from score s left join student stu on s.stuid = stu.stuid where s.gradeid=4 and s.classid=1 and s.season=1 group by s.stuid) as t1 on t1.id=s.id where s.gradeid=4 and s.classid=1 and s.season=1 and sumscore in(select max(sumscore) from (select s.id,s.stuid,stu.stuname,sum(s.score) as sumscore
from score s left join student stu on s.stuid = stu.stuid where s.gradeid=4 and s.classid=1 and s.season=1 group by s.stuid) as t2)
0 0
- 使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题
- 解决ViewPager嵌套后子ViewPager不能滑动的问题
- try- catch嵌套使用解决的问题
- mysql中insert与select的嵌套使用
- mysql中insert与select的嵌套使用
- mysql中insert与select的嵌套使用
- 解决ViewPager嵌套后子ViewPager不能滑动问题
- Max Sum(简单的最大子序列和的问题)
- mysql update不能直接使用select的结果
- MySQL update不能直接使用select的结果
- MySQL update不能直接使用select的结果
- mysql update不能直接使用select的结果
- mysql update不能直接使用select的结果
- 解决子框架嵌套的问题
- 嵌套子报表的数据窗口使用psr问题
- 解决不能使用JSTL标签的问题
- 解决开源库不能使用arc的问题
- 解决脚本不能使用onchange的问题
- ListView结合BaseAdapter实例
- 游戏编程技巧
- ARM7和Cortex-M3比较
- 第9周项目5-程序填充题a
- 【第2章 习题6】
- 使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题
- 10.28软件设计大赛一下代码
- Python正则表达式指南
- java集合类
- LeetCode--N-Queens
- 链表和数组的优缺点
- python字符串操作
- [leetcode]Add Binary
- WEB程序设计之HTML(二)