Skip to Content
用于数据分析的 SQL
book

用于数据分析的 SQL

by Cathy Tanimura
May 2025
Intermediate to advanced
360 pages
4h 52m
Chinese
O'Reilly Media, Inc.
Content preview from 用于数据分析的 SQL

第 3 章 时间序列分析 时间序列分析

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

现在,我已经介绍了 SQL 和数据库,以及准备数据用于分析的关键步骤,是时候谈谈可以使用 SQL 进行分析的具体类型了。世界上有无穷无尽的数据集,相应地也有无穷无尽的分析方法。在本章和后续章节中,我将分析类型归纳为几个主题,希望这些主题能对你提高分析能力和 SQL 技能有所帮助。随着本书的深入,将讨论的许多技术都将建立在第 2 章和前几章所展示的技术基础之上。时间序列数据非常普遍,也非常重要,因此我将从这里开始分析主题系列。

时间序列分析是 SQL 最常见的分析类型之一。时间序列是按时间顺序记录的测量或数据点序列,通常以有规律的间隔记录。 日常生活中有很多时间序列数据的例子,如每日最高气温、标准普尔 500 指数的收盘值或健身追踪器记录的每日步数。时间序列分析广泛应用于各个行业和学科,从统计学和工程学到天气预报和商业规划。时间序列分析是一种了解和量化事物随时间变化情况的方法。

预测是时间序列分析的共同目标。 由于时间只会向前推进,因此未来值可以用过去值的函数来表示,反之则不然。不过,需要注意的是,过去并不能完全预测未来。大范围市场条件、流行趋势、产品推出或其他重大变化的任何变化都会给预测带来困难。尽管如此,查看历史数据仍能让人有所启发,而制定一系列看似合理的结果也有助于规划。就在我写这篇文章的时候,世界正处于一场全球性的 COVID-19 大流行之中,这种情况已经有 100 年没有出现过了,除了最长寿的组织之外,其他组织的历史都还没有出现过。因此,当前许多组织都没有经历过这一特定事件,但它们经历过其他经济危机,如 2001 年互联网泡沫破裂和 911 袭击之后的危机,以及 2007-2008 年的全球金融危机。通过仔细分析和了解背景,我们往往可以从中获得有益的启示。

在本章中,我们将首先介绍时间序列分析的 SQL 构建模块:处理日期、时间戳和时间的语法和函数。接下来,我将介绍本章其余部分的示例中使用的零售销售数据集。接下来讨论趋势分析的方法,然后介绍滚动时间窗口的计算。接下来是跨期计算,以分析带有季节性成分的数据。最后,我们将总结一些对时间序列分析有用的其他技术。

日期、日期时间和时间操作

根据数据源的不同,日期和时间有 多种格式。我们经常需要或希望转换原始数据的格式,以便输出,或进行计算以得出新的日期或部分日期。例如,数据集可能包含交易时间戳,但分析的目标是每月的销售趋势。在其他情况下,我们可能想知道某个特定事件发生后过去了多少天或多少个月。幸运的是,SQL 拥有强大的函数和格式化功能,可以将任何原始输入转化为我们分析所需的几乎任何输出。

在本节中,我将向你展示如何进行时区转换,然后深入讲解日期和日期时间的格式化。接下来,我将探讨日期数学和时间操作,包括使用时间间隔的操作。时间间隔是一种保存时间跨度的数据类型,例如月数、天数或小时数。虽然数据可以作为时间间隔类型存储在数据库表中,但在实际应用中我很少看到这样做,因此我将在讨论时间间隔的同时,介绍可以使用它们的日期和时间函数。最后,我将讨论在连接或以其他方式组合来自不同来源的数据时的一些特殊注意事项。

时区转换

了解数据集中使用的标准时区可以避免在分析过程中出现误解和错误。 时区将世界划分为遵守相同时间的南北区域。时区使世界上不同地区的白天和夜晚时钟时间相近,例如,无论您在世界的哪个地方,太阳都在晚上 12 点从头顶升起。时区遵循不规则的边界,既有政治因素,也有地理因素。大多数时区相距一小时,但有些时区只相差 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

MySQL Concurrency: Locking and Transactions for MySQL Developers and DBAs

MySQL Concurrency: Locking and Transactions for MySQL Developers and DBAs

Jesper Wisborg Krogh
MySQL High Availability, 2nd Edition

MySQL High Availability, 2nd Edition

Charles Bell, Mats Kindahl, Lars Thalmann
Beginning Java

Beginning Java

Benjamin J. Evans

Publisher Resources

ISBN: 9798341657342