感谢该博主总结的思路,为hive学习和面试提供系统性的指导,本文是借鉴该楼主的文章进行练习,无眠:数据分析面试必备——SQL你准备好了吗?
一、最基本
1.选择某列
select
2.表连接:多张表中,想选取多个字段?
select
知识点:join
知识点:union和join的区别
二、最常用(多重组合)
1、如果有千万用户数据,想知道有多少去重的用户数?—— 去重 distinct
罗列不同的
2、想分性别进行统计,看看男女各多少?—— 聚合函数和groupby
#
易错点:直接写select count(*) from table_1 group by sex;没有对相同的id进行去重,非常重要!!!!!!!!!!!!
3、只想查看A公司的男女人数数据?—— 筛选 where/having
#
4、希望查询结果从高到低/从低到高排序?—— 排序 orderby
#
5、将数值型的变量转化为分类型的变量? —— casewhen 条件函数
此种情况常见于将某列进行分类或者分组
#
6、字符串的相关常见函数
- concat(a,b.....)返回的是a和b的连在一起的字符串
select
- split(str,regex)用于将string类型按regex提取,分割后转化成array序列
- 以regex为分隔符分隔str,并返回array序列
- substr(str,0,len) 截取字符串从0位开始的长度为len个字符。
select
三、基础进阶
1、不想全局排序,需要分组排序?—— row_number()
select
2、想要获取top10%的值?—— percentile 百分位函数、ntile(n)函数也可以做到
3、想要对时间字段进行操作?—— 时间函数
to_date
四、常见笔试/面试题:
学生表:SID,Sname,Sage,Ssex
课程表:CID,Cname,TID
教师表:TID,Tname
成绩表:SID, CID, score
#