作家
登录

SQL,从入门到熟练

作者: 来源: 2017-06-26 10:37:06 阅读 我要评论

  1. select if(industryField like '%电子商务%',1,0) from DataAnalyst  

膳绫擎的公式应用if断定出哪些是电商行业的数据分析师,哪些不是。if函数中心的字段代表为true时返回的值,不过因为包含反复数据,我们须要将其改成positionId。之后,用它与group by 组合就能杀青目标了。

  1. substr(字符串,大年夜哪里开端截,朝长进步的长度) 
  1. select city, 
  2.  
  3. count(distinct positionId), 
  4.  
  5. count(if(industryField like '%电子商务%',positionId,null)) 
  6.  
  7. from DataAnalyst 
  8.  
  9. group by city  

  1. select * from DataAnalyst 
  2.  
  3. where companyId between 10000 and 20000  

第一列数字是职位总数,第二列是电商范畴的职位数,相除就是占比。记住,count是不论0照样1都邑纳入计数,所以第三个参数须要写成null,代表不是电商的职位就清除在计算之外。

接下来是新的问题,如不雅我想找出各个城市,数据分析师岗亭数量在500以上的城市有哪些,应当怎么计算?有两种办法,第一种,是应用having语句,它对聚合后的数据结不雅进行过滤。

  1. select city,count(distinct positionId) from DataAnalyst 
  2.  
  3. group by city having count(distinct positionId) >= 500   

第二种,是应用嵌谈谢?芽。

我们将第一次萌芽获得的城市职位数的结不雅,看作一张新的表,应用as 将它定名为t1( table1 的简写),将职位数定名为一个新的字段counts。然后外面再套一层select 过滤出counts >=500。

这种萌芽方法就叫嵌谈谢?芽,应用处景比较广泛,where 后面也能跟子萌芽。

  1. select city,count(distinct positionId) as counts from DataAnalyst 
  2.  
  3. group by city 
  4.  
  5. order by counts  

看,数据就按照统计结不雅升序分列,如不雅须要降序,则是order by counts desc,后面加一个desc就好了。如不雅是多个字段,按逗号分隔即可。


  推荐阅读

  Hello World程序的起源与历史

实际上,这个法度榜样的功能只是告诉计算机显示 Hello World 这句话。传统意义上,法度榜样员一般用这个法度榜样测试一种新的体系或编程说话。对法度榜样员来说,看到这两个单词显示在电脑>>>详细阅读


本文标题:SQL,从入门到熟练

地址:http://www.17bianji.com/lsqh/35898.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)