SQL的常见错误有哪些

技术SQL的常见错误有哪些本篇内容主要讲解“SQL的常见错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL的常见错误有哪些”吧!1. Queries语句的执行顺序

本文主要讲解“SQL中常见的错误有哪些?”感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“SQL中常见的错误有哪些?”!

1. Queries语句的执行顺序

SQL的常见错误有哪些

SQL的入门门槛很低。许多人认为他们可以通过使用join和group by语句来自称专家。但是瓦工真的知道SQL语句的执行顺序吗?

SQL查询不以SELECT开头。虽然我们在编辑器中从SELECT中编写代码,但实际执行并不是从Select开始的。

首先,数据库使用FROM和JOIN来执行查询,这就是为什么我们可以在WHERE中使用统一表中的值。

为什么我们不能在WHERE语句中过滤GROUP BY的结果?“分组依据”在“地点”之前不会执行。因此,我们需要通过HAVING进行进一步的条件筛选。

通常,SELECT是最后执行的语句。它决定了查询结果需要输出哪些列以及要执行哪种聚合操作。此外,在此步骤执行窗口功能。

这就是为什么当我们试图在WHERE中过滤窗口函数的结果时会出现错误。

注意:数据库使用查询优化器来优化查询语句的执行。优化器可能会更改某些操作的顺序,以便查询运行得更快。上面的介绍是对常见情况下SQL执行的幕后发生的事情的概述。

2. WINDOW FUNCTION 是做什么的?

SQL的常见错误有哪些

许多人第一次见到窗口功能时,觉得它似乎很神秘。为什么可以用Window函数作为分组来聚合数据?

窗口函数(WF)通过特定的语句简化了许多操作步骤,以方便语句运行:

WF允许直接访问当前记录前后的数据。参见超前和滞后功能。

WF可以使用GROUP BY对聚合的数据执行额外的聚合。见上图示例:用WF计算手机累计销量。

ROW_NUMBER可以遍历每行。它也可以用来删除重复的记录。或者随机抽取样本。

顾名思义,WF可以计算给定窗口的统计数据:

SQL的常见错误有哪些

上面的WF计算从第一条记录到当前记录的累计总和。

Window Function值得花时间学习基本原理,否则很有可能查询语句写得太复杂,程序报错。

3. 利用CASE WHEN 计算平均值

SQL的常见错误有哪些

CASE WHEN类似于编程语言中的IF条件语句。当我们需要计算某个数据子集的统计信息时,它的功能就出现了。

上面的代码计算了在美国销售的产品的平均价格,但是这个代码有一个小问题,就是写Else有问题。

在第一个语句中,该代码将所有非美国产品的价格设置为0,这降低了整体平均价格。如果非美国产品很多,平均价格可能接近0。

SQL的常见错误有哪些

在第二个例子中,它只计算在美国销售的产品的平均价格,这是我需要的结果。请注意,在这里使用CASE时不需要包含ELSE,因为它默认为空。

SQL的常见错误有哪些

使用CASE语句时,请注意谨慎使用“else 0”。它对SUM没有影响,但对AVG平均计算会有很大影响。

4. 对存在缺失值的列执行JOIN语句

常见错误有哪些">

SQL中有4种不同的JOIN: Inner,  Outer, Left和Right。当我们在查询中使用JOIN时,它默认为INNER JOIN。

虽然我对JOIN有一些研究学习,但是我还是会犯一些小错误。

如上图所示执行JOIN语句,结果显示许多记录都丢失了。为什么会这样?明明是很简单的JOIN语句。

真是的原因其实是表1和表2中string_field列存在许多NULL值。通常人们会认为JOIN会保留NULL的记录因为NULL等于NULL,难道不是吗?

然后我运行如下语句:

SQL的常见错误有哪些

结果返回的是NULL。

对于这种情况,为了不丢失有NULL的记录,解决方法应该是利用COALESCE,将string_field中的NULL转换为空字符串。

SQL的常见错误有哪些

但需要注意的是,这样做会将表1中每个包含NULL的记录与表2中每个包含NULL的记录全部匹配起来。

通过使用ROW_NUMBER() 的 WINDOW FUNCTION,我们可以移除这些重复的匹配:

  • 假设该数据表对每一行都有唯一的标识符“某某某ID”和一个时间戳字段。

  • 只需保留每个标识符的第一行,这样就可以删除重复项。

SQL的常见错误有哪些

5. 对于复杂的查询语句不会使用临时表

SQL的常见错误有哪些

SQL另外一大优点就是能够调试纠错。

我们可以拆分复杂的查询语句并创建多个临时表。然后可以对这些表运行“完整性检查”,以确保它们包含正确的记录。在设计一个全新且重要的查询或报告时,强烈推荐使用这种方法。

SQL的常见错误有哪些

临时表的唯一缺点是数据库中的查询优化器无法优化该查询。

当需要保证执行效率时,可以将创建临时表的语句用with语句重新定义、查询。

SQL的常见错误有哪些

到此,相信大家对“SQL的常见错误有哪些”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/41742.html

(0)

相关推荐

  • opencv函数详解(opencv中形态学操作函数)

    技术OpenCV基本图形绘制函数有哪些本篇内容主要讲解“OpenCV基本图形绘制函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“OpenCV基本图形绘制函数有哪些”吧

    攻略 2021年12月13日
  • 如何填报志愿,2021年高考如何填报志愿

    技术如何填报志愿,2021年高考如何填报志愿高考成绩公布了如何填报志愿,恭喜大家要迈入人生新篇章了吖~8过熬过了高考这一关,填报高考志愿对考生和家长来说,也是一个大难题。天眼妹记得自己高考的时候,没少因为填报高考志愿掉头

    生活 2021年10月25日
  • 气怎么写,写页岩气作文怎么写600

    技术气怎么写,写页岩气作文怎么写600地理位置:山东省地处中国东部气怎么写、黄河下游,是中国主要沿海省市之一。位于北半球中纬度地带。陆地南北最长约420公里,东西最宽约700余公里,陆地总面积15。67万平方公里,约占全

    生活 2021年10月21日
  • 为什么数据库会丢失数据

    技术为什么数据库会丢失数据今天就跟大家聊聊有关为什么数据库会丢失数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数据库管理系统在今天已经是软件的重要组成部分,开

    攻略 2021年12月2日
  • 向心力公式,向心力和向心加速度的计算公式

    技术向心力公式,向心力和向心加速度的计算公式向心力:F=Mω²r v为线速度 单位m/s,ω为角速度 单位rad/s,m为物体质量 单位kg,r为物体的运动半径 单位m向心力公式。 向心加速度: a(n)=V²/r a(

    生活 2021年10月20日
  • kendall和spearman相关系数的关系(pearson spearman kendall)

    技术pearson, spearman与kendall的关系是什么本篇内容主要讲解“pearson, spearman与kendall的关系是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让

    攻略 2021年12月21日