CodeGym /课程 /SQL SELF /分析函数入门

分析函数入门

SQL SELF
第 59 级 , 课程 0
可用

咱们先从一个生活中的简单例子说起。假设你是咖啡店老板。每天都有顾客来下单,你把这些数据都记录下来。过一阵子你想知道:哪些饮品最受欢迎?最近三个月的平均消费是多少?哪几天收入最多?

这些问题就是分析的典型例子。分析本身就是帮你把“一堆数据”变成有用的信息。而在数据库里做分析其实不是魔法,而是一套工具,让你能回答这些问题。

分析经常要解决这些问题:

  • 分析关键指标(比如收入、平均消费、订单数量)。
  • 做报表:表格、图表、饼图啥的。
  • 监控趋势:看数据随时间怎么变化。
  • 对比数据(比如不同地区之间的对比)。

这些对做出靠谱的业务决策、优化流程,甚至预测未来结果都很重要。

PL/pgSQL在分析里的作用

现在我们知道分析有啥用,那为啥要用PL/pgSQL来做?不是可以把数据导出到Excel里算吗?对吧?

PL/pgSQL能让你:

  • 自动化计算。为啥要手动重复操作,能自动化就自动化呗!
  • 在一端处理大批量数据。在服务器端生成报表,不用把一大堆数据传到客户端。
  • 写出高效又强大的查询。处理大表又快又省资源。

举个例子:你可以每天自动生成销售报表,直接存到表里,省得手动搞。

用存储过程自动化分析的好处

手动分析流程:

  1. 从数据库拿数据。
  2. 在表格里处理一下。
  3. 保存结果。用PL/pgSQL自动化:
  4. 写一次存储过程。
  5. 定时跑一下。
  6. 坐等结果。

是不是方便多了?:)

分析函数能解决哪些问题

下面这些问题都能用分析函数搞定。这些例子能帮你明白,分析函数不是啥玄学,而是超级实用的工具。

计算关键指标

关键指标就是能反映业务状况的数据。比如:

  • 平均消费:客户平均花多少钱。
  • 某段时间的订单总数。
  • 按商品类别统计的销售收入。

算平均消费的SQL例子:

SELECT 
    SUM(order_amount) / COUNT(*) AS average_order
FROM 
    orders
WHERE 
    order_date > CURRENT_DATE - INTERVAL '3 months';

做时间序列和趋势分析

比如你想看每天的销售额怎么变。你可以按日期聚合数据,做成时间序列。

SELECT
    order_date, 
    SUM(order_amount) AS daily_sales
FROM 
    orders
GROUP BY 
    order_date
ORDER BY 
    order_date;

对比不同时间段的数据

再比如,你想对比十月和九月的收入:

SELECT 
    EXTRACT(MONTH FROM order_date) AS month, 
    SUM(order_amount) AS total_sales
FROM 
    orders
WHERE 
    order_date BETWEEN '2023-09-01' AND '2023-10-31'
GROUP BY 
    EXTRACT(MONTH FROM order_date);

这样你就能得出结论:两个月之间发生了啥变化?为啥九月更好?还是十月更牛?

实际生活中怎么用?

实际工作里,分析一般用在这些场景:

  1. 市场营销:搞清楚哪些渠道带来更多客户。
  2. 财务:算收入、亏损和做预测。
  3. 软件开发:分析应用性能。
  4. 游戏行业:分析用户行为,做个性化推荐。

现在你知道分析函数有啥用了,接下来几节课我们会深入讲技术细节,比如怎么用窗口函数和聚合函数做报表。现在你可以想想,自己想分析哪些指标,这对你的项目会有什么帮助!

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION