文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库学习

2019-09-01 21:10

关注


	数据库学习
[数据库教程]

1. 基本的经典查询

#基本的查询语句
SELECT *
FROM data.`dataanalyst` 
WHERE city =‘上海‘
AND (education = ‘本科‘
OR workYear = ‘1-3年‘
)
AND secondType LIKE ‘%开发%‘  #字段包含开发
OR secondType LIKE ‘后端%‘  #优先级:()> AND > OR

结果:

技术图片

2. 不同城市招聘公司的数量,需要用distinct去重

#不同城市招聘公司的数量,需要用distinct去重
SELECT 
city,
COUNT(positionId),
COUNT(DISTINCT(companyId)) 
FROM data.`dataanalyst`
GROUP BY city

技术图片

3. 不同城市,学历的招聘岗位数目

#不同城市,学历的数目
SELECT city,education,COUNT(1) FROM data.`dataanalyst`
GROUP BY city,education

技术图片

4. 不同城市电子商务岗位的数量

#不同城市电子商务岗位的数量
SELECT city,COUNT(1) FROM data.`dataanalyst`
WHERE industryField LIKE ‘%电子商务%‘
GROUP BY city
HAVING COUNT(1)>50 #二次过滤,挑选拥有电子商务岗位数量为50以上的城市

技术图片

5. 这是第4题的改写

上面也可以写成这样

把where合并入having中

#不同城市电子商务岗位的数量
SELECT city,COUNT(1) FROM data.`dataanalyst`
GROUP BY city
HAVING COUNT(IF(industryField LIKE ‘%电子商务%‘,1,NULL))>50 

得出的结果完全相同

6. 不同城市下,电子商务岗位在所有岗位中的占比

注意:AS的别名在where中起名之后,只能在having,order by中使用

select
city,
COUNT(IF(industryField LIKE ‘%电子商务%‘,1,NULL)) as emarket,
count(1) as total,
COUNT(IF(industryField LIKE ‘%电子商务%‘,1,NULL))/count(1) as proportion
from data.`dataanalyst`
group by city
having  emarket>10
order by proportion

技术图片

7. 截取薪资上限和下限

SELECT 
LEFT(salary,LOCATE(‘k‘,salary)-1) AS ‘minSalary‘,
RIGHT(salary,LOCATE(‘-‘,salary)-1) AS ‘最大薪资数据‘,
#去掉最后的k
LEFT(RIGHT(salary,LOCATE(‘-‘,salary)-1),LOCATE(‘k‘,RIGHT(salary,LOCATE(‘-‘,salary)-1))-1) AS ‘maxSalary‘,
salary
FROM data.`dataanalyst`

技术图片

8. 是第7题薪资上下限的改写,使用substr函数

SELECT
LEFT(salary,LOCATE(‘k‘,salary)-1) AS ‘minSalary‘,
LOCATE(‘-‘,salary),
LENGTH(salary),
#substr(字符串,从哪里开始,截取长度)
SUBSTR(salary,LOCATE(‘-‘,salary)+1,LENGTH(salary)-LOCATE(‘-‘,salary)-1) AS ‘maxSalary‘,
salary
FROM data.`dataanalyst`

技术图片

9. 子查询实现对平均薪资分区

SELECT 
    CASE
        WHEN (minSalary+maxSalary)/2 <=10 THEN ‘0-10k‘
        WHEN (minSalary+maxSalary)/2 <=20 THEN ‘10k-20k‘
        WHEN (minSalary+maxSalary)/2 <=30 THEN ‘20k-30k‘
        ELSE ‘30k以上‘
    END AS ‘平均薪资范围‘,
	(minSalary+maxSalary)/2 AS ‘aveSalary‘,
	salary
FROM(
    SELECT
    LEFT(salary,LOCATE(‘k‘,salary)-1) AS ‘minSalary‘,
    LOCATE(‘-‘,salary),
    LENGTH(salary),
    #substr(字符串,从哪里开始,截取长度)
    SUBSTR(salary,LOCATE(‘-‘,salary)+1,LENGTH(salary)-LOCATE(‘-‘,salary)-1) AS ‘maxSalary‘,
    salary
    FROM data.`dataanalyst`) AS t

注意对表子查询的话,最后要加上 as t

技术图片

数据库学习

原文地址:https://www.cnblogs.com/snailser/p/14509944.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯