数据分析函数

想要的数据在多张表里,想取多个字段 表连接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

https://www.jianshu.com/p/3f3cf58472ca

https://www.jianshu.com/p/a49d6193f2bb

原文地址:https://www.cnblogs.com/songyuejie/p/12654803.html