中国统计网|SQL大厂面试常考知识点 | 新手速进!( 三 )
selectsubstr('abcde',3,2)from
iteblog;
-- 得到cd
三.基础进阶
1.row_number-- 按照字段salary倒序编号
select*, row_numberover(orderbysalarydesc)asrow_numfromtable_1;
-- 按照字段deptid分组后再按照salary倒序编号
select*, row_numberover(partitionbydeptidorderbysalarydesc)asrankfromtable_1;
本文插图
按照depid分组 , 对salary进行排序(倒序)
除了row_number函数之外 , 还有两个分组排序函数 , 分别是rank 和dense_rank 。
rank排序相同时会重复 , 总数不会变, 意思是会出现1、1、3这样的排序结果;
dense_rank排序相同时会重复 , 总数会减少 , 意思是会出现1、1、2这样的排序结果 。
row_number 则在排序相同时不重复 , 会根据顺序排序 。
2.percentile 百分位函数-- 获取income字段的top10%的阈值
selectpercentile(CAST(salaryASint),0.9))asincome_top10p_thresholdfromtable_1;
-- 获取income字段的10个百分位点
selectpercentile(CAST(salaryASint),array(0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0))asincome_percentiles
fromtable_1;
3.时间函数selectdatediff('2016-12-30','2016-12-29');
-- 得到 "1"
to_date函数可以把时间的字符串形式转化为时间类型 , 再进行后续的计算 。
常用的日期提取函数包括:
- year/month/day/hour/minute/second
- 日期运算函数包括datediff(enddate,stratdate) 计算两个时间的时间差(day)
- date_sub(stratdate,days) 返回开始日期startdate减少days天后的日期
- date_add(startdate,days) 返回开始日期startdate增加days天后的日期
【中国统计网|SQL大厂面试常考知识点 | 新手速进!】
点击“在看” 让更多朋友看到好内容!
推荐阅读
- 中年|中国-东盟区块链应用创新实验室揭牌
- IT爆料猿|中国电信6月5G用户数净增779万户,累计3784万
- 2020|影谱科技入选“2020中国AI商业落地价值潜力100强榜单”
- 中国航务周刊|港航业再现跨界收购!
- 招生|有道词典与中国教育在线合作,开通“高考招生”直播服务
- CSDN|由 Apache 说开,中国开源项目已经走向世界!
- AI财经社|谷歌云为何“放弃”中国市场?有人为它算了账,投入产出比太低
- 网速|全球网速排名:中国手机网速世界第三,美国第34
- 驱动中国|国内首次应用!支付宝开放宠物鼻纹识别技术:猫狗都能买保险
- 魅族|2020年BrandZ中国全球化品牌50强新鲜出炉,魅族再上榜,位列34名