比较ChatGPT、Claude与Gemini在SQL能力上的表现,为选择合适的AI助手提供参考。
原文标题:独家 | ChatGPT Claude和Gemini 数据分析大比拼(第一部分)(下)
原文作者:数据派THU
冷月清谈:
怜星夜思:
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分。
6. 总结
最终得分Final scores (图片由作者提供)
Claude 3.5 Sonnet (10 分)
-
Claude在SQL生成和优化方面表现最佳,最初只错了一个问题,但在澄清后很快纠正了。如果你正在寻找一个AI来协助SQL查询,我会100%推荐Claude。
-
我还喜欢他们的用户界面,可以格式化文本输入以提高可读性。
-
另一个我欣赏的功能是他们的“项目”功能——你可以设置自定义指令并在项目级别共享知识,这对于团队使用非常方便。
-
然而,它的文件上传限制具有挑战性,如果你想与它共享真实数据集,他们能实际接受的文件大小远低于官宣的和ChatGPT允许的,可能是出于需求量比较高的原因,希望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能否取代数据科学家?这是我的看法:
我对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
作者简介:
作者简介

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。