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

c6bc780abe6a2d8cc3961c8950b3ac3f.png

作者:Yu Dong翻译:陈之炎校对:付文欣
本文约2500字,建议阅读5分钟
十个问题帮你测试出哪个AI助手能写出最佳的SQL代码。

4.2. 问题5:新用户计数

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

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

08fd74bb0ecc5f91f5752c5a263222e7.png 

223ebc02c1377945052595a4a03445d3.png

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

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

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

e01f876607d0810772aecf74ff30a857.png 

d816c633be207e41baec8c5aec59bb6b.png

4.4. 问题7:留存率

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

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

e4ccc6a071b5992db0d08a45cabd7207.png 

37c3eaf6429abebf0bda59ade32678d1.png

7e72efa2cc70e2a28021af3c85b59482.png

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

d9c364c1b80e35948c176e89b8a01943.png 

8e29cf13ebcb3bbd3b1ca1ce272b29d1.png

f25027079097db85c5b87ce3684a301e.png

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

91d202e6832ef536957d72db35596328.png 

399461b15f705094b2f21686af338dd5.png

第二轮回顾

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

bea9e354b4faade46e0061a7ebc96fde.png 

ffa3f8aacdaeff8b9f967c1f1f0ceca4.png

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

5. 第三轮:查询优化

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

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

c30564ac02b02af9775472eb3a340308.png 

bc3790a8568e175daff14807fe6925d8.png

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

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

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

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

50fd434343c0388a262796613fce3539.png 

c03927919cbdf669c4579ae482191515.png

5.2. 问题9:预聚合

c4acb1ac657573a8641c3a70a659a0c8.png 

bf0f4475864e0a70e56c3375c26c35c7.png

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

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

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

f5ac8dd468b3d54d2b6d7bcca9e0ad88.png 

8ef81d9148600b1371e836c8aa18e67f.png

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

830d3f044c670594ef151c6667e1412f.png 

b8b7f985df4e4f4e52a5f36e9ba429f3.png

5.3. 问题10:去重

fa3f4c71c4fe1245d1ba4dcc72e04d5b.png 

68a90591a1fae0ce5d5d3e256925f1e7.png

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

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

bd086b769bfe0bfe09a09e9958c60292.png 

3038606a5f4ca2e12086de0feee79986.png

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

0d7eab40c46d219220d3a1867584e70b.png 

f5011042442c5220a79aecc8a1f51130.png

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

57b3f922fde8194826b2d96a1cfb93e3.png 

64188f4497740212409c1cc6a7e4970a.png

第3轮回顾

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

f167b2c41eebff4e8d198decac695cf5.png

f53d40b6450b8acc9331092b2ed260bd.png

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

6. 总结

b19c556825188f6efe7b04d2818b0dea.png

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

Claude 3.5 Sonnet (10 分)

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

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

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

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

5ea5851e8302c23e04937b3648940ede.png 

4a6afa1ad0dc44c1e138745de1e9b564.png

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数据科学 | 数据故事讲述者

编辑:于腾凯

校对:林亦霖

作者简介

ddb1f480770be04505136ada55fd1561.jpeg

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

转载须知

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

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

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

3d9dc52faafed64de52e422342212eb2.png

新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值