数据分析函数
2020-04-07 17:45 DataBases 阅读(185) 评论(0) 编辑 收藏 举报想要的数据在多张表里,想取多个字段 表连接join
两张表数据的字段一样,想合并起来 union
去重 distinct
分组聚合函数和group by
筛选 where(行)/having(组)
希望查询结果从高到低/从低到高排序?—— 排序 order by
将数值型的变量转化为分类型的变量?—— case when 条件函数
不想全局排序,需要分组排序
rank()排序相同时会重复,总数不会变 ,意思是会出现1、1、3这样的排序结果;
dense_rank() 排序相同时会重复,总数会减少,意思是会出现1、1、2这样的排序结果。
row_number() 则在排序相同时不重复,会根据顺序排序。
select
cookieid,
createtime,
pv,
rank() over (partition by cookieid order by pv desc) as rn1,
dense_rank() over (partition by cookieid order by pv desc) as rn2,
row_number() over (partition by cookieid order by pv desc) as rn3
from cookie.cookie2
where cookieid='cookie1';
ROW_NUMBER、RANK和DENSE_RANK的区别
row_number: 按顺序编号,不留空位
rank: 按顺序编号,相同的值编相同号,留空位
dense_rank: 按顺序编号,相同的值编相同的号,不留空位
想要对时间字段进行操作 时间函数
to_date函数可以把时间的字符串形式转化为时间类型,再进行后续的计算;
常用的日期提取函数包括 year()/month()/day()/hour()/minute()/second()
日期运算函数包括datediff(enddate,stratdate) 计算两个时间的时间差(day);
date_sub(stratdate,days) 返回开始日期startdate减少days天后的日期。
date_add(startdate,days) 返回开始日期startdate增加days天后的日期。
https://www.cnblogs.com/ZackSun/p/9713435.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步