四招技巧,秒杀复杂的SQL

一个问题的复杂度分为两种:本质复杂度和偶然复杂度,本质复杂度就是必须要做的事,偶然复杂度多为偶然的路径选择而遇到的额外的事,多余做的事情。

类比写SQL做数据分析,SQL模型很复杂多半来自偶然复杂性:比如一个指标模棱两可的口径,只需要和需求方沟通清楚,确定口径即可,没必要埋头苦干,苦思两全的方法这么做多半没有价值。

避免路径依赖,固守老方法而忽略新的高效的工作方法,要多想多借鉴优秀的经验来提高工作效能。

总结了几种SQL的高级写法,让SQL更顺滑。普通版sql VS 高级版sql,一见便知…

1,学会使用CTE

CTE是共享表达式,它可以拆解复杂的SQL逻辑,让自己的SQL简洁易维护。当然也可以实现经典的递归操作。

在这里插入图片描述

2,学会用临时函数

运用CREATE TEMPORARY FUNCTION,抽离复杂过程,让SQL更干净。

在这里插入图片描述

3,善用 LATERAL VIEW explode()

LATERAL VIEW 不仅可以将列转成多行, 还以达到代替冗余的 union all的功效

在这里插入图片描述

4,要学会使用变量

变量会给程序带来灵动性,一次定义多次使用,同时可以做到一次修改,引用都修改的功效
在这里插入图片描述

5,不要埋头苦干

遇到问题多思考几分钟,多找找其它方法,是不是有更高效的办法,比如关注「数据指象」收获更多新知识点。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值