写SQL的套路
2024-10-10 09:33:47
定义问题
转化问题
如要解决的问题是:查出每门课程成绩都大于80分学生的姓名,可以转化为:只要学生最小分数的课程大于80分,就是所有课程成绩都大于80分。
查询同名同姓学生名单并统计同名人数-->怎么算姓名相同?按姓名分组后人数大于等于2,因为同名的人数大于等于2,分析出这一点很重要
分解问题
如要解决的问题是:查询出两门课程以上不及格的学生姓名和其平均成绩
先分解题目:
1)[两门以上][不及格课程]限制条件
2)[同学的学号及其平均成绩],也就是每个学生的平均成绩,显示学号,平均成绩
分析过程:
第1步:得到每个学生的平均成绩,显示学号,平均成绩
第2步:再加上限制条件:
1)不及格课程
2)两门以上[不及格课程]:课程数目>2
使用以下套路
select 查询结果
from 从哪张表中查找数据
where 查询条件
group by 分组
having 对分组结果指定条件
order by 对查询结果排序
limit 从查询结果中取出指定行
sql执行顺序
(1)from
(2)on
(3)join
(4)where
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6)avg,sum....
(7)having
(8)select
(9)distinct
(10)order by
(11)limit
最新文章
- tp框架之AJAX
- 使用jQuery.form插件,实现完美的表单异步提交
- xib托线出来的为什么是weak而不是strong
- 【转】Nginx+php-fpm+MySQL分离部署详解
- NeHe OpenGL教程 第十六课:雾
- 51nod1188 最大公约数之和 V2
- [分享]好用的Markdown编辑器
- php中utf8 与utf-8 与utf8 无BOM
- SQL按日期Datatime来比较大小
- ios毛玻璃效果
- 一个自己给自己挖的MVC的坑
- 当引用了Properties.Settings后,如果执行的时候,出现";配置系统无法初始化"; 或者 某某节点不正确
- CodeForces 629C Famil Door and Brackets
- C# 面向对象基础&;封装&;继承&;多态&;加深一下冒泡排序写法
- 使用xUnit为.net core程序进行单元测试(4)
- NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks
- Cesium打包命令
- Spring Cloud Feign Ribbon 配置
- Python操作远程服务器paramiko模块介绍
- Angular之模版引用变量