微信扫码
添加专属顾问
我要投稿
数据分析师福音!AI助力SQL编写效率提升,从手搓代码到智能生成,解放50%工作时间。 核心内容: 1. SQL编写效率的三代演进:从全手工到AI智能补全 2. 当前AI生成SQL的挑战与机遇:元数据质量是关键 3. 实战案例:基于腾讯元器平台构建SQL生成智能体
当面对集团级数千甚至数万张表时,由于元数据缺失、定义不明确以及历史SQL采集存在各种问题,AI生成SQL的异常率可能较高。然而,针对单个部门或小规模团队,在确保数据质量并完善AI知识库的情况下,AI生成SQL的成功率相当可观,至少能显著减少数据分析师编写SQL的时间消耗。
如下为个人基于第三方AI平台构造SQL生成智能体实践,平台选用的是腾讯的元器(大家可按需选择平台入口:https://yuanqi.tencent.com/)
平台知识库允许上传word、txt、pdf等多种文件类型,免费版可上传文件数达100个,同时允许用户填写知识库说明,以便模型更好地理解调用我们上传的知识库。
智能体创建好后可以分享给其他人使用,支持api调用:
import requests
token = 'xxxxxx' # 平台生成的token
url = 'https://yuanqi.tencent.com/openapi/v1/Agent/chat/completions'
headers = {
'X-Source': 'openapi',
'Content-Type': 'application/json',
'Authorization': f'Bearer {token}' # <token>替换为实际token,
}
data = {
"assistant_id": "jC4nUeCKE6jK",
"user_id": "<userid>", # 替换为实际userid,这个用户id可不填
"stream": False,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "你会做什么"
}
]
}
]
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
reply = result['choices'][0]['message']['content']
print(reply)
如下为智能体创建步骤:
你是一名SQL专家,熟悉大数据诸如Hive、SparkSQL、Trino以及关系型数据库MySQL、Oracel等计算引擎。在编写SQL时你会充分考虑如下几点:
1. SQL简洁可用
2. SQL运行性能
3. SQL代码可读性
4. SQL优化提示
5. 生成SQL代码复核
请基于如下要求,编写一段SQL:
统计各个年龄段的如下三个指标:订单金额、订单数、用户数
﹣筛选条件:
1.用户学历:本科;
2.用户性别:女性
3.订单商品一级分类:A
4.订单时间:2025年5月
5. 订单状态:成功
﹣年龄段分层如下:
1.18岁及以下,命名为"<=18"
2.19-22,字段值为"19-22"
3.23-25,字段值为"23-25"
4.26岁及以上,字段值为">=26"
-- 统计各年龄段订单金额、订单数、用户数
-- 筛选条件:用户学历本科、女性、商品一级分类A、2025年5月订单、订单状态成功
SELECT
age_group,
SUM(amount) AS total_amount, -- 订单金额总和
COUNT(order_no) AS order_count, -- 订单数(基于唯一订单号)
COUNT(DISTINCT user_id) AS user_count -- 用户数(去重用户ID)
FROM (
SELECT
o.order_no,
o.amount,
o.user_id,
u.age,
-- 年龄段分层逻辑
CASE
WHEN u.age <= 18 THEN '<=18'
WHEN u.age BETWEEN 19 AND 22 THEN '19-22'
WHEN u.age BETWEEN 23 AND 25 THEN '23-25'
ELSE '>=26'
END AS age_group
FROM
db.order_info o
JOIN
db.dim_goods g ON o.goods_id = g.goods_id -- 连接商品维度表
JOIN
db.user_tag u ON o.user_id = u.user_id AND o.dt = u.dt -- 连接用户标签表,基于用户ID和日期分区
WHERE
u.education_level = 3 -- 筛选学历本科(枚举值3)
AND u.gender = 2 -- 筛选女性(枚举值2)
AND g.PRIMARY_CATEGORY = 'A' -- 筛选商品一级分类A
AND o.dt BETWEEN '2025-05-01' AND '2025-05-31' -- 筛选2025年5月订单
AND o.status = 2 -- 筛选订单状态成功(已支付,枚举值2)
) AS subquery
GROUP BY
age_group
ORDER BY
age_group; -- 按年龄段排序,便于阅读
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-06
ChatBI的皇帝新衣:为何90%的企业AI应用项目注定失败?
2025-08-05
基于大模型的Text2SQL最佳实践
2025-08-04
大模型+MCP在ChatBI问数场景下的探索实践
2025-07-30
SEO 已死?GEO / AIO 时代来临!万字解析生成式引擎优化如何重塑数字营销底层逻辑
2025-07-29
先BI再ChatBI,还是直接ChatBI?
2025-07-28
NL2SQL:从自然语言到SQL的智能转换技术深度解析
2025-07-27
LangChain + MCP 构建带可视化图表功能的ChatBI智能体
2025-07-23
大语言模型在电商定价中的实践
2025-05-29
2025-05-11
2025-05-09
2025-05-19
2025-06-08
2025-05-12
2025-07-01
2025-05-09
2025-05-12
2025-06-17
2025-08-06
2025-07-29
2025-05-27
2025-05-27
2025-05-12
2025-05-09
2025-04-17
2025-04-14