DuckDB 实战笔记 - 2026-09-05

💸 别再手动记账了!用 DuckDB 10 分钟搞定全年财务分析

周末翻账单,发现钱不知道花哪去了?别用 Excel 硬扛了。今天教你把支付宝/微信导出的 CSV 直接扔给 DuckDB,一条 SQL 算出「月度消费趋势 + 最大开销类别」,立刻看清你的钱去哪了。

🎯 真实场景 你导出了 2026 年 1-8 月的支付宝账单(alipay.csv),字段:date, category, amount。想知道每月总支出、最大支出类别,以及哪个月最烧钱。

🐍 代码:Python 一键分析

import duckdb

# 1. 直接从 CSV 建表(自动推断 schema)
con = duckdb.connect()
con.execute("""
    CREATE TABLE bills AS 
    SELECT * FROM read_csv('alipay.csv', 
                           header=true, 
                           dateformat='%Y-%m-%d')
""")

# 2. 核心分析:月度汇总 + 最大类别
result = con.execute("""
    SELECT 
        strftime(date, '%Y-%m') as month,
        SUM(amount) as total_spend,
        -- 找出每月消费最高的类别
        (SELECT category FROM bills b2 
         WHERE strftime(b2.date, '%Y-%m') = month
         ORDER BY b2.amount DESC LIMIT 1) as top_category
    FROM bills
    GROUP BY month
    ORDER BY month
""").fetchdf()

print(result)

💡 核心价值:为什么是 DuckDB?

  • 零配置:不用装数据库,Python 里一行 import duckdb 就能跑
  • CSV 当表查read_csv 自动识别类型,省去 pandas 清洗步骤
  • 子查询秒回:上面这种「找每月最大类别」的关联子查询,pandas 要写循环,DuckDB 一条 SQL 搞定
  • 内存分析:处理几十万行账单不卡,比 Excel 快 10 倍

⚡ 进阶技巧 想加个「环比上月变化」?把上面 SQL 末尾加一句:

-- 用 LAG 窗口函数算环比
SELECT month, total_spend,
       total_spend - LAG(total_spend) OVER (ORDER BY month) as diff
FROM (-- 上面的查询结果) 

赶紧把账单导出来跑一下,今晚就知道该省哪笔钱了。💪

📺 Watch video tutorials → Olap Studio YouTube

Subscribe for more DuckDB & AI automation tutorials

使用 Hugo 构建
主题 StackJimmy 设计

⚠️ 本站为独立社区项目,与 DuckDB 基金会及 DuckDB 官方项目无任何从属、背书或赞助关系。

"DuckDB" 是 DuckDB 基金会的注册商标,本站仅以事实描述方式使用该名称。

本站内容仅供教育与社区推广用途,不构成任何商业服务。