ChatGPT、Claude与Gemini SQL技能大比拼分析

对比ChatGPT、Claude与Gemini在SQL技能的表现,分析其查询准确率、效率与可解释性。

原文标题:独家 | ChatGPT Claude和Gemini 数据分析大比拼(第一部分)(上)

原文作者:数据派THU

冷月清谈:

本文系列的第一部分专注于对比三款AI助手ChatGPT、Claude与Gemini在SQL技能方面的表现。通过十个评估问题,涵盖问题解决、业务逻辑和查询优化三个方面,评测三者在查询准确性、效率、格式化和可解释性上的表现。作者尝试使用各自的聊天机器人解决SQL问题,并生成合成数据集,旨在帮助数据专业人士和爱好者选择最适合的AI助手。结果显示,Claude在语法和逻辑上较为出色,而Gemini在数据链接方面存在不一致性。总结中提到,虽然三者都能提供准确的SQL代码,但在数据处理的细节上表现出明显差异,后续还将进行更深入的分析与比较。

怜星夜思:

1、在SQL技能中,你认为最重要的是什么特点?
2、你觉得对AI助手进行SQL能力的测试,有什么实际意义?
3、在使用AI助手进行数据分析时,有哪些注意事项?

原文内容

图片
作者:Yu Dong
翻译:陈之炎
校对:付文欣

本文约3000字,建议阅读5分钟

十个问题帮你测试出哪个AI助手能写出最佳的SQL代码。


标签:AI助手,SQL


目录


  • 背景

  • SQL技能比拼!

  • 第一轮:问题解决(LeetCode SQL)

  • 第二轮:业务逻辑

  • 第三轮:查询优化

  • 总结

  • 下一步是什么


1. 背景


欢迎来到ChatGPT vs. Claude vs. Gemini 数据分析系列博文的第一弹。在本系列博文中,我将比较不同AI模型在各种数据科学和分析任务上的表现,旨在帮助数据爱好者和专业人士选择最适合各自需求的AI助手。


我会比较下面的三个具体模型。之所以选择这三个模型,是因为它们都提供了一个易于访问且方便日常任务的聊天机器人界面。我使用了订阅账户进行性能比较(是的,为了写这篇文章,我在上周订阅了Claude和Gemini Advanced)。


ChatGPT 4o:对所有ChatGPT用户开放,但对免费用户有使用限制。

Plus订阅每月20美元。

  • 上下文窗口:128k 标记

  • 训练数据更新至2023年10月

(来源于官方文档:https://platform.openai.com/docs/models/gpt-4o)


Claude 3.5 Sonnet:对所有Claude.ai用户开放,但免费用户有使用限制。专业计划每月20美元。

  • 上下文窗口:200k 标记

  • 训练数据更新至2024年4月

(来源于官方文档:https://docs.anthropic.com/en/docs/about-claude/models)


Gemini Advanced:向Google One AI Premium计划订阅者开放,每月20美元(都是一样的价格...)

  • 上下文窗口:100万个标记

(详情:https://support.google.com/gemini/answer/14517446)

  • 训练数据更新至2023年11月

(来源于官方文档:https://ai.google.dev/gemini-api/docs/models/gemini?hl=zh-cn)

图片 

由DALL·E提供图片


2. SQL技能比拼!


在本系列文章的第一篇中,我们将重点关注最重要的数据技能之一——SQL。每位数据分析师或科学家都需要SQL,其相对简单的语法使其成为评估LLMs的理想起点。我将评估三者的查询准确率、效率、格式化和可解释性。


评估过程包括十个问题,分为三个类别:


1. 问题解决:前三题来自LeetCode SQL问题。这些问题对于输入和输出表的结构有着清晰的描述,类似于面试问题。

2. 业务逻辑:接下来的四个问题是我原创的问题。我将尝试模拟在工作中如何使用SQL——我将提供实际数据集和业务问题或指标的简短描述。

3. 查询优化:在最后一部分,将挑战用LLMs优化三个SQL查询。


让我们开始吧!


3. 第一轮:问题解决(LeetCode SQL)


3.1. 问题1 - LeetCode SQL 262 行程和用户


我选择这个问题是因为它在LeetCode上被标记为“困难”,通过率仅为36.5%。它的复杂性在于如何在不同列上两次连接同一表并对多个过滤器进行解释。


GPT-4o:GPT在第一次回答就提供了正确的解决方案,并附有详细的解释。给予满分。


Claude 3.5 Sonnet:Claude提供了准确的代码和详细的解释。给予满分。

图片 


Gemini Advanced:Gemini也提供了正确的查询和解释,获得了满分。有趣的是,它在回答的最后给了一个GitHub链接。看来Gemini不仅根据它的“知识”生成问题,还搜索了互联网。然而,它链接的仓库是一个随机的LeetCode练习仓库,不包括这个SQL问题……我认为链接搜索结果可以增加可信度。但如果结果不相关,那么……?

图片 

Gemini链接了一个随机的GitHub仓库(图片由作者提供)


3.2. 问题2 - LeetCode SQL 185 部门三大最高薪水


这也是一个较“困难”的SQL问题,需要一个窗口函数。


GPT-4o:GPT使用窗口函数提供了正确的解决方案,并附有清晰的解释。给予满分。

图片 


Claude 3.5 Sonnet:Claude也提供了类似的正确解决方案,并有全面的解释。给予满分。


Gemini Advanced:Gemini提供了正确的解决方案,获得了满分。这一次,它链接了包含LeetCode SQL解决方案的相关GitHub仓库和具体的LeetCode问题。我很高兴它没有犯同样的错误。

图片 

Gemini链接了相关GitHub仓库和正确的LeetCode问题(图片由作者提供)


3.3. 问题3 - LeetCode SQL 1341 电影评分


我选择的最后一个问题是“中等”难度问题,但通过率仅为40.1%。它需要合并两次聚合得到的前几个结果。


GPT-4o:解决方案正确且解释得很好,尽管有点冗长和低效。MaxUser和MaxMovie CTEs是多余的。见下文Claude的整洁解决方案。因此,我给它一半的分数。

图片 


Claude 3.5 Sonnet:Claude的解决方案清晰高效,解释了两个子查询。它获得满分。


图片

图片 

Gemini Advanced:不幸的是,Gemini的解决方案是错误的。过滤器WHERE user_rank=1 OR movie_rank=1抛出了一个语法错误,因为combined_results实际上并没有movie_rank列。有趣的是,它链接到了一个包含正确解决方案的相关GitHub仓库,但它并没有在自己的答案中使用这个解决方案。


(所以即使它搜索了互联网,它也不使用搜索结果中的解决方案?我真困惑…)

图片 

图片

图片


第一轮回顾


在这一轮中,Claude 3.5 Sonnet是赢家,它正确回答了所有三个问题,并附有清晰的解释。GPT-4o得分2.5分,由于查询效率低下而失去了0.5分。Gemini Advanced因最后一个问题中的语法错误而只得到2分。它的“来源和相关内容”功能仍然不一致——有时不相关,有时与其答案不一致。

图片 

第一轮得分(图片由作者提供)


4. 第二轮:业务逻辑


奖励:数据集准备


在这一轮中,我计划上传假数据集到三个AI工具,提供有限的描述,并让它们读取数据集来解释我的业务问题并编写SQL查询。但首先,需要生成合成数据。

我也将使用LLMs来完成这项任务。

图片 

生成合成数据集的提示(图片由作者提供)


ChatGPT-4o:它生成了四个带有下载链接的CSV文件。令我印象深刻的是,GPT不仅创建了我指定的列,还添加了非常符合商业背景的额外列。它使用faker包生成了看起来非常真实的假数据。

图片 

GPT生成的合成数据集。别担心,所有的支付信息都是假的。(图片由作者提供)

图片 

ChatGPT利用faker包生成合成数据集(图片由作者提供)


Claude 3.5 Sonnet:Claude提供了使用np.random方法生成合成数据集的Python代码。然而,它不能直接运行代码提供的CSV下载链接,它也没有使用faker包,所以生成的数据感觉不太真实。


Gemini Advanced:Gemini在这任务中表现不佳。它生成了四个我可以打开的Google电子表格的表格,但这些只是表格描述的表格。在后续澄清后,它创建了只有10行的假表格,并拒绝提供更大的数据集。

图片 

Gemini创建了表格描述的表格(图片由作者提供)


加载数据集


有了这四个合成数据集,我尝试将它们上传到三个AI工具(在新的对话线程中)。总文件大小为920 KB,数据集大小从500到5000行不等。

图片 

图片

GPT生成的文件(图片由作者提供)


ChatGPT-4o:ChatGPT成功加载了四个数据集,并为每个表格提供了预览。用户界面允许展开表格以便更仔细地检查。它的文件上传大小限制为每个文件512MB,一次对话中最多包含10个文件。


Claude 3.5 Sonnet:当我尝试上传四个数据集时,Claude返回了一个错误:“对话超出长度限制的119%。”这令人惊讶,因为Claude 3.5 Sonnet的上下文窗口比ChatGPT-4o高。尽管他们声明的文件上传限制为“每个文件30MB(最多5个文件)”,实际限制似乎更低,可能是由于需求量高的原因。最终,我不得不削减超过一半的行数,将总文件大小减少到320 KB,它才工作。

图片 

Claude关于长度限制的错误消息(图片由作者提供)


Gemini Advanced:Gemini回应说,“我无法协助你,因为我只是一个语言模型,没有能力理解和响应。”


因此,我不得不为后续问题提供表格描述,而不是上传真实的数据集。

图片 

Gemini关于文件上传的错误消息(图片由作者提供)


4.1. 问题4:月度销售计算


提示:请帮我写一个SQL查询,计算美国用户的每月总订单金额。


GPT-4o:它提供了正确的答案,并根据对数据集的理解,主动添加了订单状态过滤器order_status = 'Completed'。我给它打满分和附加0.5额外分数。


Claude 3.5 Sonnet:它也提供了正确的查询。对于“美国用户”过滤器,它编写了country = 'United States' OR country = 'US'。我故意将一些“United States”的实例替换为“US”,以模仿现实世界中的数据不一致性。我很高兴看到Claude注意到了这个细节。它也得到满分和0.5的额外分数。

图片 

图片


Gemini Advanced:Gemini生成了正确的查询,获得了满分。


以上为 ChatGPT  Claude和Gemini 数据分析大比拼(第一部分)(上)全部内容,下篇为分享 ChatGPT  Claude和Gemini 数据分析大比拼(第一部分)(下),谢谢阅读。

原文标题:
ChatGPT vs. Claude vs. Gemini for Data  Analysis (Part 1)
原文链接:
https://towardsdatascience.com/chatgpt-vs-claude-vs-gemini-for-data-analysis-part-1-821086810318


编辑:于腾凯
校对:丁玺茗





作者简介





图片

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步



转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。





关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU


点击“阅读原文”拥抱组织


这能帮助我们评估不同AI模型在实际工作中的应用效率,进而选择最合适的工具。

当然,毕竟现在的数据分析工作越来越多依赖于工具,如果能选对助手,可以大大提升工作效率。

而且通过测试,可以发现各助手的优势和不足,帮助它们改善,不断提升性能。

我觉得最重要的是查询效率,一个好的SQL能在最短的时间内返回数据,这对业务决策至关重要。

我认为可读性也很重要,清晰的SQL代码不仅让自己看懂,也能让团队成员更容易理解。

准确性是关键,如果生成的SQL有误,最后结果自然也会错,所以无论如何都得首先保证代码的正确性。

务必确保输入的数据清晰准确,很多时候问题出在数据本身而不是AI。

要对生成的SQL进行验证,不能完全依赖AI的输出,特别是在关键业务场景中。

了解自己需要解决的问题,能够更有效地与AI进行沟通,从而提升效率。