关于Mysql一些细节

作者: 执小生 | 来源:发表于2019-02-24 15:17 被阅读30次

一、where过滤条件不能使用聚集函数

1、需求:显示sc 表中成绩大于平均成绩的记录

2、错误写法:select * FROM sc WHERE score>avg(score),这种写法是错的

3、正确写法:select * from sc where score>(select avg(score) from sc ),需要多一个子查询,或许有更方便的方法,可能我没有想到(菜鸟...)

二、group by高级用法

需求:求sc表中,选修3门课的学生所占比例

可能我们一开始,会直接通过group by sid having count(sid)=3去筛选选修3门课的学生,接下来下一步再去统计sc表的sid总数,那样写出来的语句可能就是:

SELECT t1.total,count(t2.sid) as 3_total, count(t2.sid)/t1.total from

(SELECT COUNT(DISTINCT sid) as total from sc) as t1,

(select sid from sc GROUP BY sid having COUNT(sid)=3) as t2

但是更好的语句:

select count(*) ,

count(if(t1.total=3,1,null)),

count(if(t1.total=3,1,null))/count(*)

from (SELECT  sid,count(sid)  as total FROM sc GROUP BY sid)t1

三、Mysql的执行顺序

开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果 

努力努力再努力,认真做练习,不断总结不断深化,才能真正掌握!

第一次写简书,排版美观还不会优化,见谅见谅~~

相关文章

  • 关于Mysql一些细节

    一、where过滤条件不能使用聚集函数 1、需求:显示sc 表中成绩大于平均成绩的记录 2、错误写法:select...

  • (转)MySQL 中 GROUP BY 基本实现原理

    之前连着写了几篇关于 MySQL 中常用操作的一些基本实现原理,如,MySQL ORDER BY,MySQL Jo...

  • 关于一些细节

    关于一些细节 UILabel autoresizing使用前的解释: UIViewAutoresizing是一个枚...

  • Mysql 索引 & 锁

    Mysql索引在开发工作中经常用到,在此总结一些关于mysql索引的一些学习笔记 1mysql索引的本质是什么? ...

  • mysql 细节

    主要是面试经验总结和一些反思。 http://www.dongchangbin.net.cn/?p=643 del...

  • 查询优化

    MySql组合索引应该注意的细节 1. MySql 组合索引 MySQL组合索引具有...

  • MySql--InnoDB的表空间

    MySql--InnoDB的表空间 具体细节 请去掘金购买《MySQL 是怎样运行的:从根儿上理解 MySQL》 ...

  • MySQL 学习记录(1)

    关于MySQL中的一些基础知识的赘述 类型 约束和键

  • UIButton

    btn系统创建类型 关于btn,关于contentInset的一些细节 关于btn,内部布局的另外两个设置除了上面...

  • 18-mapStateToProps的第二个参数

    Time: 20200129 本文讲讲关于mapStateToProps的一些细节。 App.js ItemCon...

网友评论

    本文标题:关于Mysql一些细节

    本文链接:https://www.haomeiwen.com/subject/zozvyqtx.html