AI助手SQL能力大比拼:ChatGPT、Claude与Gemini

比较ChatGPT、Claude与Gemini在SQL能力上的表现,为选择合适的AI助手提供参考。

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

原文作者:数据派THU

冷月清谈:

本文对ChatGPT、Claude 3.5 Sonnet和Gemini Advanced在SQL查询生成与优化方面进行了比较评估,针对若干查询问题分析了三者的表现。每个模型在执行特定SQL代码时的正确性、创新性和优化能力被逐一测评,并给出了具体分数。Claude以出色的SQL生成与优化表现获得最高分,与此同时,GPT-4o和Gemini的表现也得到了不同程度的认可。本文强调了各AI助手的优缺点,提出了在选择合适AI助手时应关注其具体技能和使用场景。后续还计划对这些AI在数据科学其他技能上的表现进行评估。

怜星夜思:

1、你认为在SQL查询性能优化方面,哪个AI助手最值得信赖?为什么?
2、你觉得在选择AI助手时,需要优先考虑哪些因素?
3、哪种领域的AI助手能力评估对数据科学家最有帮助?

原文内容

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

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

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


4.2. 问题5:新用户计数


提示:请帮我写一个SQL查询,计算每个月的首次用户数量。首次用户是指下第一个订单的用户。


GPT-4o、Claude 3.5 Sonnet和Gemini Advanced:所有三个AI助手都提供了正确的查询,获得了满分。

图片 

图片


4.3. 问题6:最畅销的产品类别


提示:请帮我写一个SQL查询,获取每个月总订单金额排名前5的热门产品类别。

GPT-4o、Claude 3.5 Sonnet和Gemini Advanced:所有三个AI助手都使用窗口函数,提供了正确的查询,获得了满分。

图片 

图片


4.4. 问题7:留存率


提示:请帮我写一个SQL查询,计算每个月的用户留存率。月份X的留存率 = 在月份X-1下过订单的用户中,也在X月份下过订单的用户数%。


GPT-4o:它提供了一个错误的答案。它的PreviousMonthUsers CTE和RetainedUsers CTE做了同样的事情……我两次指出它的错误才得到正确的答案。这里打0分。

图片 

图片


Claude 3.5 Sonnet:它的初始解决方案也失败了,但比GPT更接近。它计算了当月有订单的用户总数。然而,我想要的分母是月份X-1有订单的用户。Claude在一次跟进后更正了代码,获得了0.5分。

图片 

图片

图片


Gemini Advanced:它在第一次尝试中也失败了。它没有按照我的要求计算留存率,即月份X和X-1都有订单的用户/月份X-1有订单的用户,而是做了月份X和X+1都有订单的用户/月份X有订单的用户。在一次跟进后,Gemini更正了代码并获得了0.5分。

图片 


第二轮回顾


在这一轮中,Claude 3.5 Sonnet以3.5分加上0.5额外分数领先。ChatGPT-4o得分3分,加上0.5额外分数,在创建和管理合成数据集方面表现出色。Gemini Advanced得分3.5分,它是唯一一个不能直接上传CSV文件的模型。

图片 

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


5. 第三轮:查询优化


在这最后一轮中,我专注于查询优化技能,我使用了SQL优化文章中的低效代码示例,这些查询基于上述相同的四个假数据集。


5.1. 问题8:仅选择必要的列

图片 

图片


我期望:在窗口函数中选择必要的列,用比SELECT 更好的方法。


GPT-4o:它通过选择相关列并提供清晰的解释来优化查询,它还建议确保适当的索引以提高窗口函数的性能。给予满分。


Claude 3.5 Sonnet:Claude不仅选择了相关列,还使用了COALESCE(SUM(price), 0) AS first_order_amount来处理潜在的空值情况。给予满分。


Gemini Advanced:Gemini也通过选择相关列并提供索引建议来优化查询。给予满分。

图片 

图片


5.2. 问题9:预聚合

图片 

图片


我的期望:鉴于users是一个具有许多列的宽表,最好先进行聚合计算first_order_amount,然后再连接到users表以获取所有列。


GPT-4o:最初,GPT-4o只更新了格式,并在users表中明确列出了列。在提示了users表的宽表性质后,它建议先进行预聚合,获得0.5分。


Claude 3.5 Sonnet:Claude建议预聚合,将大表连接移到最后一步进行优化,并提供了清晰的解释。给予满分。

图片 


Gemini Advanced:Gemini也建议预聚合,但查询有语法问题,它坚持认为查询是正确的……我非常困惑,所以我自己在Snowflake中测试了一个类似的查询(它抛出了语法错误:意外的‘GROUP’),并询问了ChatGPT和Claude。我95%确定你不能以这种方式在同一个CTE中使用QUALIFY和GROUP BY……鉴于这是一个语法错误,Gemini获得0分。但如果这在其他一些数据仓库中有效,请务必告诉我。

图片 

图片


5.3. 问题10:去重

图片 

图片


我期望:该查询使用DISTINCT、UNION和ROW_NUMBER()进行去重,所有这三个操作成本都很高,并且是在做同样的事情,所以应消除重复的去重工作。


GPT-4o:它优化了代码,但改变了输出表结构。好吧,我想我没有明确说我需要相同的输出结构……在澄清后,它提供了具有正确列的优化代码。我在这里给它0.5分。

图片 


Claude 3.5 Sonnet:Claude提供了一个解决方案,将两个窗口函数CTE合并为一个,并使用CASE WHEN + WHERE rn_first=1 OR rn_last=1来获得相同结构的输出。老实说,我甚至没有想到这种方法。它再次获得满分。

图片 

图片


Gemini Advanced:Gemini也将两个窗口函数合并为一个,但然后使用DISTINCT获取首次和最后一次订单ID。这需要两次表扫描,DISTINCT成本昂贵,所以在我看来它似乎不如Claude的解决方案有效。我给它0.5分。

图片 

图片


第3轮回顾


在这一轮查询优化中,Claude 3.5 Sonnet是明显的赢家,三个问题都答对了,并且提供了创新的解决方案。ChatGPT-4o在两个问题上需要指导,但最终所有问题都回答正确,获得了2分。Gemini Advanced有一个语法错误,并产生了一个不太优化的代码,因此得到了1.5分。

图片

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


6. 总结


图片

最终得分Final scores (图片由作者提供)


Claude 3.5 Sonnet (10 分)


  • Claude在SQL生成和优化方面表现最佳,最初只错了一个问题,但在澄清后很快纠正了。如果你正在寻找一个AI来协助SQL查询,我会100%推荐Claude。

  • 我还喜欢他们的用户界面,可以格式化文本输入以提高可读性。

  • 另一个我欣赏的功能是他们的“项目”功能——你可以设置自定义指令并在项目级别共享知识,这对于团队使用非常方便。

  • 然而,它的文件上传限制具有挑战性,如果你想与它共享真实数据集,他们能实际接受的文件大小远低于官宣的和ChatGPT允许的,可能是出于需求量比较高的原因,希望Claude能尽快改进这个功能。

图片 

Claude项目(图片由作者提供)


GPT-4o (8 分)


  • GPT-4o能够编写语法正确的SQL,它在业务逻辑方面表现出色,但在查询优化方面落后。

  • GPT-4o的一个显著优势是能够直接在用户界面中加载数据集并与它们互动,助力数据理解和探索——你可以在我的文章:

  • (https://towardsdatascience.com/evaluating-chatgpts-data-analysis-improvements-interactive-tables-and-charts-622d3e5a3816)中了解更多关于这个功能的信息。
  • 它生成带有下载链接的合成数据集的能力也给人留下了深刻印象。


Gemini Advanced (7分)


  • Gemini在所有三个类别中的性能都比Claude和ChatGPT差,但它仍然设法正确回答了70%的问题。

  • 能够搜索网站并提供参考链接是它的竞争优势。然而,根据上文的经验,链接有时是不相关的,或者与其回应不匹配,这破坏了回答的可信度。

  • Gemini的另一个优势是它与Google套件其他产品集成。例如,可以在Google电子表格中打开它生成的数据集。


7. 下一步是什么


现在我们已经比较了SQL技能,接下来我计划评估下面这些数据科学技能。如果你有任何其他领域希望我一并评估的,请告诉我!


  • 探索性数据分析(EDA)

  • 可视化

  • 机器学习

  • 文本分析

  • 数据科学商业案例


对AI和数据科学感兴趣?这里有更多文章可以查看:


ChatGPT能否取代数据科学家?这是我的看法:

https://towardsdatascience.com/evaluating-chatgpt-in-data-science-churn-prediction-analysis-as-an-example-feec7edc23af

我对ChatGPT交互式表格和图表功能的评价:

https://towardsdatascience.com/evaluating-chatgpts-data-analysis-improvements-interactive-tables-and-charts-622d3e5a3816

如何使用OpenAI API进行文本分类和摘要?我的代码示例:

https://ydong029.medium.com/topic-summarization-and-categorization-with-gpt-717a40130d25

你听说过Google的新AI笔记本吗?在这里查看:

https://levelup.gitconnected.com/how-googles-powerful-ai-notebook-will-transform-your-research-and-learning-116e116db4e0


作者简介:

本文由Yu Dong撰写
1.8K关注者 · Towards Data Science撰稿人
Brex数据科学 | 数据故事讲述者


编辑:于腾凯
校对:林亦霖





作者简介





图片

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



转载须知

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

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




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




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

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


我觉得文本分析和机器学习的技能评估会对数据科学家特别有帮助,这两个方向是如今很多项目的核心。

我偏向于探索性数据分析(EDA),因为这能直接反映出数据的特点,好的EDA可以为后续分析做出很大贡献。

我最关心的是数据可视化能力,一个好的可视化工具能够把复杂的数据分析过程转变为简单易懂的结果,帮助团队决策。

我认为最重要的是助手的交互能力和优化建议,尤其是在处理复杂查询时,这能直接影响我的工作效率。

数据集的处理能力也是关键,像GPT-4o直接可以与数据集互动的功能确实让人印象深刻,我会优先考虑这个。

当然,用户界面的友好程度也很重要,一个好的界面能大大减少学习成本,使用起来会更加顺手。

我觉得Claude最值得信赖,它在很多情况下能给出创新的建议,比如在查询优化时还能处理潜在的空值,这在实际应用中非常重要。

虽然Claude表现不错,但我觉得GPT-4o在业务逻辑理解方面表现优异,如果考虑到用户操作的直观性和交互性,GPT-4o也很值得一试。

从某种程度上说,使用雅思考试的评分标准来看,Claude和GPT-4o分数接近,但Claude的创新能力感觉更强,这样在复杂业务场景中可能更有优势。