SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手

SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
来源:知乎转自:SQL数据库开发大家好 , 我是小数~最近是招聘季 , 数分笔试又经常会考到SQL , 今天特意分享一篇SQL干货 , 帮助大家查漏补缺 。 SQL , 数据分析岗的必备技能 , 你可以不懂Python , R , 不懂可视化 , 不懂机器学习 。 但SQL , 你必须懂 。 要不然领导让你跑个数据来汇...... , 哦不 , 你不懂SQL都无法入职数据分析岗 , 更别说领导了 。 SQL难吗?说实话 , 要写好 , 很难很难 。 但要通过SQL笔试这关 , 并不难 。 相信大伙都使用过Excel , 用SQL实现excel常用操作去学 , 感觉会比较具体 。 我自身也刚入数据岗不久 , 本文也是为自己巩固一下SQL 。 数据是网上找到的销售数据 , 命名为sale , 长这样:
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
01.关联公式:Vlookupvlookup是excel几乎最常用的公式 , 一般用于两个表的关联查询等 。 所以我先创建一个新表:复制sale表并筛选出地区仅为广州的 , 命名为sale_guang 。 createtablesale_guangSELECT*fromsalewherecity="广州";需求:根据订单明细号关联两表 , 并且sale_guang只有订单明细号与利润两列SELECT*fromsaleainnerJOIN(SELECTordernum,profitfromsale_guang)bona.ordernum=b.ordernum02.对比两列差异需求:对比sale的订单明细号与sale_guang订单明细号的差异;SELECT*fromsaleaWHEREa.ordernumnotin(SELECTb.ordernumfromsale_guangb);03.去除重复值需求:去除业务员编码的重复值04.缺失值处理需求:用0填充缺失值或则删除有地区名称缺失值的行 。 --用0填充:updatesalesetcity=0wherecity=NULL--删除有缺失值的行:deletefromsalewherecity=NULL;05.多条件筛选需求:想知道业务员张爱 , 在北京区域卖的商品订单金额大于等于6000的信息 。 SELECT*fromsalewheresalesman="张爱"andcity="北京"andorderaccount>=6000;06.模糊筛选数据需求:筛选存货名称含有"三星"或则含有"索尼"的信息 。 07.分类汇总需求:北京区域各业务员的利润总额 。 08.条件计算需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?这些订单的利润总和和平均利润是多少?--有多少个?SELECTCOUNT(*)fromsalewhereinventorynamelike"%三星%"and`tax`>1000;--这些订单的利润总和和平均利润是多少?SELECT`ordernum`,SUM(profit),AVG(`profit`)fromsalewhereinventorynamelike"%三星%"and`tax`>1000GROUPBY`ordernum`;09.删除数据间的空格需求:删除存货名称两边的空格 。 SELECTtrim(inventoryname)fromsale;10.合并与排序列需求:计算每个订单号的成本并从高到低排序(成本=不含税金额-利润)SELECTcity,ordernum,(Nontaxamount-profit)ascostfromsaleorderbycostDESC;总结:结构化查询语言(StructuredQueryLanguage)简称SQL , 果然和它名字一样 , 查询起来得心应手 , 但做想做数据处理方面 , 能明细感受到比Python和excel吃力(也可能是我还没学好orz) 。 贴一些在面试时遇到过的SQL笔试题吧:某数据服务公司:
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
Student:
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
Score(1)查询Student表中的所有记录的Sname、Ssex和Class列 。 selectsname,ssex,classfromstudent;(2)查询Score表中成绩在60到80之间的所有记录 。 select*fromscorebetween60and80;(3)查询95033班和95031班的平均分 。 selectclass,avg(degree)fromScoreajoinstudentbona.sno=b.snoGROUPBYCLASS;总之是比较简单的SQL笔试题了 , 当时很快就写完了 。 实际上这不是原题 , 不过我有印象就是考察这几个知识点 , 并且蛮简单的 。 某手游公司的SQL笔试题(原题)
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
(1)建立表Student的语句写下来 , 表Student是由学号Sno,姓名Sname,性别Ssex,年龄Sage,所在系Sdept五个属性组成 , 其中学号属性不能为空 , 并且其值是唯一的 。 createtableStudent_new(snovarchar(20)PRIMARYKEY,snamevarchar(10),ssexchar(2),sageint,sdeptvarchar(25));(2)在student表中查询Sdept是“计算机”的学生所有信息并按SNO列排序 。 select*fromstudentwheresdept="计算机"orderbysno;(3)在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别 。 selecta.sno,a.sname,a.ssexfromstudentajoin(Courseb,SCc)ona.sno=c.snoandb.cno=c.cnowhereCcredit=5andGrade>60;某互联网金融公司SQL笔试题(原题)
SQL轻松玩转Excel的10大功能,最后再来几道面试题练练手
文章图片
(2)表A和表B的并集:(3)表A和表B的对称差:(4)表A中存在但表B中不存在:-End-