掌握SQL窗口功能

了解如何使用窗口函数执行计算而不会丢失细节帖子掌握SQL窗口功能首先出现在数据科学上。

来源:走向数据科学

在我的工作中,我编写了无数的SQL查询来从数据中提取见解。这始终是一项具有挑战性的任务,因为编写有效的查询不仅很重要,而且还足够简单以维持随着时间的流逝。

每个新问题都有一个新课程,最近,我一直在研究SQL窗口功能。当您需要在一组行上执行计算而不会失去单个记录的粒度,这些功能强大的工具非常有用。

而不会失去单个记录的粒度

在本文中,我将逐步分解SQL窗口功能。起初它们可能看起来很复杂或不直觉,但是一旦您了解它们的工作方式,您就会看到它们的必不可少。你准备好了吗?让我们一起潜入并掌握它们!

目录

    为什么我们需要窗口函数?窗口函数的语法四个简单示例
  • 为什么我们需要窗口功能?
  • 窗口函数的语法
  • 四个简单示例
  • 要了解窗口功能的功能,让我们从一个简单的示例开始。想象一下,我们有一张来自电子商务网站的六个订单的表。每行都包括订单ID,日期,产品,其品牌和价格。

    作者的插图。示例表可说明窗口函数的功能。

    让我们假设我们要计算每个品牌的总价格。使用子句的组,我们可以编写这样的查询:

    选择品牌,总和(价格)作为来自订单组的total_price

    这返回结果,每行代表一个品牌以及该品牌下的所有订单的总价格。

    | brand | total_price || ----------------------------------------------- | 30 || Nike | 175 || Parfois | 25 || Zara | 65 |

    此聚合删除了单个订单的详细信息,因为输出仅包含品牌的一行。如果我们想保留所有原始行并将每个品牌的总价格添加为一个额外的领域,该怎么办?

    sum(价格)(品牌分区) 没有倒塌的行