当前位置: 首页 > news >正文

怎么建设淘客自己的网站_手机优化大师官网

怎么建设淘客自己的网站_,手机优化大师官网,外网专线,用wordpress搭建目录网站注:文章首发于微信公众号【可乐的数据分析之路】,号内回复“资料”,可免费领取数据分析学习资料大礼包今天这篇文章是对比Excel学习SQL系列的第5篇文章,之前3篇的传送门在这里:《计算字段》、《对行和列的操作》、《库…

af494a15ce9c046a0a6e56f697bd53f5.png
注:文章首发于微信公众号【可乐的数据分析之路】,号内回复“资料”,可免费领取数据分析学习资料大礼包

今天这篇文章是对比Excel学习SQL系列的第5篇文章,之前3篇的传送门在这里:《计算字段》、《对行和列的操作》、《库/表/记录的增查删改》、《写给小白的SQL学习文章》。

本节内容要用到的数据表:成绩表(sc),学生基本信息表(student1)

d176ea544f1ae977e21a9d3b43cfddf2.png

7a60de374a0ae44e83c36e62c0ff6984.png

一、分组

01 创建分组

group by 命令用来创建分组,分组其实相当好理解,就是Excel里的数据透视表,汇总方式为计数、求和或平均的功能,所以通常和聚合函数结合起来使用。

--语法
select 列,聚合函数 from 表 where子句 group by 列;

Group by 要放在where之后,order by 之前

Q1:统计每个学号(snum)下的人数

用到【group by + count】,对snum学号一列分组并计数,相当于Excel透视表中把snum拖到列标签,同时对snum计数,结果是一样的。

select snum, count(*) from sc group by snum;

96c3f73337c48562667f6785744bb121.png

eb2a2c7ed769ccbb8e255551b22f6746.png

同理,你可以试试对cnum和score分组计数是什么结果。

Q2:统计每个学号(snum)下的总成绩

【group by + sum】,结合sum函数,可以统计每个学号的总成绩,Excel里是对score求和。

select snum,sum(score) from sc group by snum;

6a35fb38124de22b9594f50d26ada6e6.png

5fa92591c4a67b79561e7e96087c938b.png

Q3:统计每个学号和成绩号下的平均成绩

Excel透视表里这样做,把snum和cnum拖动到行标签,score计数项求平均。

1472c3cb108c79c4e25b7f836042c39f.png

【group by 对一个以上的列】,对一个以上的列分组group by后面的每个列之间要用逗号隔开。如下图所示的意思是,先对snum分组,再对cnum分组,分组后得到的值求平均值,结果和Excel透视表是一样的。

select snum,cnum,avg(score) from sc group by snum,cnum;

574908d081f41c41aea8610d88e38152.png

02 分组后过滤

使用group by创建了分组以后,如果要做保留哪些分组,排除哪些分组的操作,就要用到having命令了。

--语法
select 列,聚合函数 from 表 where子句 group by 列 having 聚合函数 操作符 值;

某网站用户登陆浏览记录表如下,一条行记录表示用户在哪个时间段登陆了一次,singin字段表示用户点击的次数,统计每个用户登陆网站的次数(复习一下刚刚的group by)

3c7906b17bae611f6f8852c7b6e7577e.png

Q4:统计登陆网站次数大于等于2次的用户有哪些。

select name,count(*) from employee_tb1 group by name having count(*) >= 2;

相当于透视以后再做一次筛选

4d190a7378f2d98e2e7b6e2085df6aaa.png

与where的区别

Where和having都是过滤的命令,但是因为where不能过滤聚合函数,所以要用到having,他们的不同之处是:

  • Where过滤的是行,having过滤的是分组;
  • Where用在分组前,having用在分组后

【与where同时使用】

Q5:统计点击次数大于等于2次的用户中登陆网站次数大于等于2次的用户。

select name,count(*) from employee_tb1 where singin>=2 group by name having count(*) >=2;

bc7ca36441c6767305566f0f9c79c0ae.png

分组和排序

分组以后的顺序不一定是升序或降序排列,以下是用order by和不用的区别,可以很明显的看出来。分组一般搭配排序,order by写在group by的后面。

53b05ece2c76aacbeeafeae4daede637.png

二、子查询

子查询就是在查询里再嵌套一个查询,子查询也很好理解,类似Excel里的IF函数嵌套的概念。

where中使用子查询就是在where语句后用操作符(>,<,=,in)连接另一个查询。

--语法
select 列 from 表 where 操作符 (select 列 from 表)

Q6:找出成绩大于学号为7的学生成绩的学生的信息

select snum.cnum,score from sc where score > (select score from sc where snum = 7);

b07f0cfd52b9fde361c6c438910f6178.png

这相当于做了两个操作:

先找出学号为7的学生的成绩,为89

3f0ec502877aa153f9c74143f58af6b7.png

再查询成绩大于89的学生信息:

ee2d0201ade52bb1e87b67ed9f4e27f3.png

结果和子查询的结果一致,注意在where中使用子查询时,子查询的结果应是一个或几个值,而非一个数据表。

子查询可以在同一个表中使用,如上述的sc表中查询的例子,还可以用在不同的表中,如下例

Q7:查询成绩大于90的学生基本信息

这里提供成绩表(sc)和学生基本信息表(student1),两个表有相同的字段学号(snum),从成绩表中提取成绩大于90的学生的学号,嵌套到基本信息表中。

select * from student1 where snum in (select snum from sc where score> 90);

6d889d4d090997bc7d923c5b98a53f63.png

相关子查询的分享就到这里,具体练习可前往SQLZOO的子查询模块进行练习。


提供入门级数据分析的学习路线规划,分享从Excel到统计学的干货。数据分析是一项技能,希望人人都能分析数据。

2431ac48fe9f744bdd012c6f23e585ca.png
http://www.lbrq.cn/news/2454373.html

相关文章:

  • 泰安房产最新出售信息seo网站自动发布外链工具
  • 网站建设网络工作室搜索引擎营销的实现方法
  • 帮人做彩票网站广州seo顾问seocnm
  • o2o网站建设效果企业宣传推广怎么做
  • 网站建设立项申请书百度注册
  • 网上服装商城网站建设方案策划书seo快排公司哪家好
  • 58同城建设网站北京做的好的seo公司
  • 网站开发用到的编程网页优化seo广州
  • 大型租车门户网站商业版源码发布软文广告
  • 网站后台登录代码优化什么
  • 贵港网站开发视频号视频下载助手app
  • 花生壳做网站看网站时的关键词
  • 网站建设公司 2018网络营销推广机构
  • 河南企业做网站网站百度收录
  • 深圳民治做网站黄石seo诊断
  • 广东省住房城乡建设部网站北京网站优化步骤
  • dw做网站教程今日军事头条新闻
  • 凡客做网站手机访问另一部手机访问文件
  • 北海做网站有哪家好最新今日头条
  • 从事网站建设的工资百度app下载安装普通下载
  • 专业制作存单昆明seo案例
  • 网站做ssl证书有风险友情链接平台赚钱吗
  • 长春seo外包平台宝鸡百度seo
  • 什么是三合一网站建设关键词优化排名软件推荐
  • 企业网站建设招标技术标准seo网站优化师
  • 网站底部素材阿里云云服务平台
  • wap动态网站开发模板建站和开发网站区别
  • 企业小程序开发谷歌seo课程
  • 国外设计模板网站深圳网站seo地址
  • 动态网站建设试题和答案网络广告推广
  • 如何使用Anaconda(miniconda)和Pycharm
  • React入门学习——指北指南(第四节)
  • 数据库索引详解:原理、设计原则与应用场景
  • 在python3.8和pytorch1.8.1的基础上安装tensorflow
  • 变频器实习DAY15
  • 深度解析 noisereduce:开源音频降噪库实践