• 请不要在回答技术问题时复制粘贴 AI 生成的内容
widowcat
V2EX  ›  程序员

现在 ai 能写报表 sql 吗

  •  
  •   widowcat · 7h 40m ago · 3459 views
    最近工作多了很多写复杂报表的需求。想尝试用 ai 来写,不知道有没有人已经尝试过
    44 replies    2026-06-09 17:23:54 +08:00
    fqyd
        1
    fqyd  
       7h 37m ago
    你试试呗,我之前用 codex gpt5.4 改过一个上千行的 mysql 的存储过程,效果不错。
    widowcat
        2
    widowcat  
    OP
       7h 35m ago
    @fqyd 我也用过,主要是我才接收不是很懂业务,想着能不能把一些表发给 ai ,然后再把一些历史报表 sql 发给他,最后发给他需求让他写
    fqyd
        3
    fqyd  
       7h 33m ago
    @widowcat 那我觉得你应该先用 AI 帮你把业务梳理清楚,否则容易改崩。然后,你的 sql 要做个版本管理,方便回退。
    dvazqcce
        4
    dvazqcce  
       7h 30m ago
    完全没问题,你把数据库的结构和表名说清楚,需求说清楚就完全 OK 。你还可以让给你弄点测试的数据。
    NoCash
        5
    NoCash  
       7h 27m ago
    得看你用的什么模型,某些 AI 就不用说了。
    Meteora626
        6
    Meteora626  
       7h 26m ago
    说清楚字段 计算逻辑,大模型生成 sql 的准确率还是很高的。
    ration
        7
    ration  
       7h 21m ago
    接数据库 MCP ,如果主外键,字段名注释做的好,效果就不错
    widowcat
        8
    widowcat  
    OP
       7h 19m ago
    @ration 大佬,这个在 datagrip 里面可以操作吗
    thevita
        9
    thevita  
       7h 18m ago
    看看多复杂呗,也许不用纠结一定要是传统报表的形式,不用在意一次成功,我最近试过扔一个 duckdb 和需求给 pi agent, 结果做成图表放飞书文档感觉挺好使的
    widowcat
        10
    widowcat  
    OP
       7h 12m ago
    @thevita 是医院 his 业务,目前是乙方在搞,我们才接报表的,看他们原来写的报表 sql 都是几百行
    twofox
        11
    twofox  
       7h 10m ago
    完全可以。我看到有些项目是先拉一遍数据库表结构。把元数据和相互之间的关系维护好。就可以写报表了
    tiezlk443
        12
    tiezlk443  
       7h 6m ago
    你对齐好字段其他都让 AI 去写
    xiaomushen
        13
    xiaomushen  
       7h 5m ago
    @widowcat 这种都是小事情
    Light3
        14
    Light3  
       7h 3m ago
    不知道什么数据库 想让 ai 写 sql 第一步接数据库 mcp 不过这个不推荐..
    如果只是单数据库 你可以把结构存一遍在本地 然后叫他去拉那个文件 再写
    csfreshman
        15
    csfreshman  
       7h 2m ago
    你描述清楚,代码交给 claude,写的又快又好,挑不出毛病
    x86
        16
    x86  
       6h 59m ago
    能不能写,取决你描述的是否到位了
    kuhung
        17
    kuhung  
       6h 58m ago
    小规模完全可以,大企业内部的多表多血缘那种难。几百行小 case ,有些 sql 上万那种比较难办。
    Morriaty
        18
    Morriaty  
       6h 52m ago
    核心不是写 SQL ,其实是业务梳理\数据治理,比如:
    - 活动未完成率是“没达到次数未完成”,还是“时间超时未完成”
    - 系统里一部分用户是老的邮箱系统注册的,而新用户全部统一用手机号注册,AI 怎么知道这个信息?

    正好 A➗最近出了篇文章: https://claude.com/blog/how-anthropic-enables-self-service-data-analytics-with-claude
    fruitmonster
        19
    fruitmonster  
       6h 35m ago
    肯定可以啊,前提是你得知道他写出来的是正确的还是错误的

    不能盲目的相信它
    BeFun
        20
    BeFun  
       6h 14m ago
    我们是自己写了个报表引擎,类似帆软那种
    wangritian
        21
    wangritian  
       6h 12m ago
    用 claude ,表述清楚,控制好单次任务量,可以非常精准的完成
    remarrexxar
        22
    remarrexxar  
       6h 10m ago
    报表看板一次性脚本是最适合完全托管给 AI 处理的,最后看一下结果让 AI 迭代就行了,只需要自己有基本的鉴别能力,不用太关心实现细节了。
    bbao
        23
    bbao  
       6h 10m ago
    可以,定义好就行,我前同事在快手,他们就 AI 处理数据。写 sql 报表 ,有时候 AI 出结果他们都不人工审核
    widowcat
        24
    widowcat  
    OP
       5h 34m ago
    @wangritian 目前我也在用 claude 写,主要想让他读数据库然后自己来完成
    nishui
        25
    nishui  
       5h 8m ago
    你可以考虑自己做个连数据库的服务,给 AI 提供扩展能力。

    我是自己做了一个 python+fastapi 连数据库 mysql 的服务,再做个 SKILL 让 AI 调用请求访问就行(不喜欢 MCP )。

    提供基本的 schemas tables query count explain 接口服务,AI 就会自己查看存储过程等数据库相关内容。

    剩下的基本上就是准确描述你的需求,以及相关表之间的联系,然后跟 AI 一块讨论分析问题
    (因为很多时候表、数据有各种各样的遗留问题、不规范、人为问题导致的,所以必须跟进分析)。

    https://github.com/nishuiq/mysql-readonly-api
    看情况你也可以自己改造适配对应的数据库😋
    kang77649119
        26
    kang77649119  
       4h 29m ago
    很勇啊,小心删库
    rednoob
        27
    rednoob  
       4h 20m ago
    肯定能, 写的又好又快, 重点是用好 skill
    collery
        28
    collery  
       4h 10m ago
    @kang77649119 肯定给读权限啊。。
    songone
        29
    songone  
       3h 49m ago
    可以,我一个前端最近都写了很多 SQL 。只用查询权限的账号执行。
    scguanzhong
        30
    scguanzhong  
       3h 49m ago
    好用的很哦 数据字典给她。说需求就行咯。比我自己快 也准确的多
    songone
        31
    songone  
       3h 47m ago
    用的 Kiro ,要把 sql 规范落地,因为我有些报表维度要它设计,用 spec 模式,写了一整套查询,大致十个大的维度,两三千行 sql ,花费 500 积点,大致相当于 20 刀。
    owen800q
        32
    owen800q  
       3h 45m ago via iPhone
    你们公司允许把数据传给第三方服务?
    HMYang33
        33
    HMYang33  
       3h 35m ago
    2023 年 10 月我和一个武汉的公司就签个人外包单做了这样的项目。不过我只是做做前端的数据放到图表里展示。不知道后端怎么设计的
    vacuitym
        34
    vacuitym  
       3h 28m ago
    我已经专门写了一个 md 描述表结构,然后每次有报表需求都直接转发给 cc 让他帮我处理了
    t3zb2xzvjm4yvmn
        35
    t3zb2xzvjm4yvmn  
       3h 6m ago
    最近用了 Altimate code ,专门写数据仓库的 ETL ,感觉很不错,可以试试
    widowcat
        36
    widowcat  
    OP
       3h 5m ago
    @songone 你用的什么工具,历史的 sql 也在里面吗
    wakeqzero
        37
    wakeqzero  
       1h 39m ago
    @widowcat 勉勉强强,主要是医院的数据库太复杂了,有些定义又很模糊,写点简单的还行,复杂的需求还是得自己慢慢调整。我用得最多的就是根据自己的经验跟 AI 说涉及到哪些表,让 AI 写个大的框架,剩下的自己慢慢调。或者是一些历史 SQL 然 AI 优化一下
    VersionGod1
        38
    VersionGod1  
       1h 30m ago
    我给了 codex 测试环境数据库的只读权限,他可以通过我的项目代码直接读取数据库了解结构和数据,我感觉各种维度的报表挺复杂的,目前看他都能理解并执行
    illbehere
        39
    illbehere  
       1h 18m ago
    对 ai 来说写 sql 可太简单了
    langhuishan
        40
    langhuishan  
       50 mins ago
    大概有 30 个表,把表结构,需要查询的字段发给 AI ,问答两三个来回,基本就满足要求了。还能 mssql ,mysql 来回切换
    popvlovs
        41
    popvlovs  
       43 mins ago
    效果好不好,取决于数据治理做的好不好,要是一堆人类都看不懂的表名和字段名,那你可有的受了
    kevan
        42
    kevan  
       32 mins ago
    学习一下.AI 数据分析
    azkaban
        43
    azkaban  
       23 mins ago
    别说报表了,元数据知识库给足,直接自然语言开问就行,我们给运营的 sql 平台现在就成这样了
    Smileh
        44
    Smileh  
       23 mins ago
    可以实现, 前提是业务梳理清楚
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4901 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 127ms · UTC 09:47 · PVG 17:47 · LAX 02:47 · JFK 05:47
    ♥ Do have faith in what you're doing.