通过公共表达式改进您的SQL逻辑

通过优化SQL逻辑来提升公共表达能力

使逻辑更容易编写、阅读、解释和维护

Photo by Sam Moghadam Khamseh on Unsplash

将你的衣物乱堆起来,希望一切能顺利可能不是一个好的长期管理策略。稍后可能很难实现:

从堆中选择袜子

当你需要一件衬衫时,你肯定会遇到困难:

从堆中选择不起皱的衬衫

和管理衣物一样,积极管理SQL逻辑也有明显的好处。

在本文中,我们将探讨常用表达式(CTEs)如何改进你的SQL逻辑。意大利面代码很少是好代码,这对SQL和任何编程语言来说都是正确的。在数据管理和工程中,并没有银弹。然而,保持逻辑有条理和易于审查只会对你有所帮助。让我们深入探讨吧!

常用表达式是什么样子的?

我有时称它们为WITH子句。为什么?让我们看一个例子:

我把它们称为WITH语句,因为它们总是以… WITH开始。

一看就能明白正在发生什么有多容易吗?有三个部分:

  1. 识别“高价值客户”的查询。
  2. 识别“新客户”的查询。
  3. 最终查询阶段在“高价值客户”和“新客户”之间进行内连接,提供一个只包含同时存在这两个类别中的客户的结果集。

另一种方法

在我了解常用表达式(CTEs / WITH语句)之前,我可能会这样处理这个查询: