美文网首页
数据分析师必备技能之SQL(1) -- 逻辑顺序和执行顺序

数据分析师必备技能之SQL(1) -- 逻辑顺序和执行顺序

作者: ArnoChanszu | 来源:发表于2020-08-10 17:20 被阅读0次

写在前面的话:

SQL是数据分析师必备的数据处理、分析工具,本系列会分享一些自己的实战经验,致力于为各位同行者提供建议,避免踩坑!

第一部分,先来讨论一个很容易被忽略,也很重要的问题:SQL的书写顺序和执行顺序。

以下是常见的SQL语句的查询书写顺序:

// SQL查询书写顺序

select <select_list>

from <table_name>

<join_type> join <join_table>

on <join_condition>

where <where_condition>

group by <group_by_list>

having <having_condition>

order by <order_by_condition>

limit <limt_number>

```

但是SQL实际执行过程中,每一步都是通过产生一个虚拟表,保存执行结果;如果某一个子句缺失,则跳过。

以下才是SQL实际的执行顺序

// **SQL实际执行顺序**

from 加载,进行表的查找和加载

on 关联字段

join 关联表

where 过滤

group by 分组

avg、sum...(聚合函数)

having 过滤

select 字段

distinct 去重

order by 排序

limit 限制输出数量

```

例如:查询平均成绩大于60分的同学的学号和平均成绩;

如果忽略了SQL的实际执行顺序,很容易写成:

select id

,avg(score) as avg_score

from sc

group by id

having avg_score > 60

;

但是select的执行顺序应该是在avg聚合函数之后的,所以正确的写法是:

select id

,avg(score) as avg_score

from sc

group by id

having avg(score) > 60

;

这是SQL很重要的语法,但也很容易被忽略,希望对大家今后编写SQL语句有所帮助~

相关文章

网友评论

      本文标题:数据分析师必备技能之SQL(1) -- 逻辑顺序和执行顺序

      本文链接:https://www.haomeiwen.com/subject/wrijdktx.html