sql优化以及shell脚本相关知识点汇总
实时更新!
常用sql函数:
decode()(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
rlike like REGEXP 正则匹配
列转行:concat_ws(',',collect_set(column))
说明:collect_list 不去重,collect_set +group
行转列:
select user_id,order_value,order_id
from lie_col
lateral view explode(split(order_value,',')) num as order_id
开窗:
row_number()会生成数据项在分组中的排名,排名即便相等也不会有并列排名,相同排名随机排序。
rank()可以生成数据项在分组中的排名,排名相等时会产生并列排名,然后会在名次中留下空位。应用场景不多,很少需要使用,了解即可。
dense_rank()可以生成数据项在分组中的排名,排名相等时会产生并列排名,但不会在名次中留下空位。应用场景也不多,很少需要使用,了解即可dense_rank()可以生成数据项在分组中的排名,排名相等时会产生并列排名,但不会在名次中留下空位。应用场景也不多,很少需要使用,了解即可
排序
rows
range
between
---sql优化
1、避免笛卡尔积 不止有null 截取的时候还有空值
举例:做身份证统计的时候,为了更加准确加了trim,然后截取忘记在身份证加trim