高质量BI报表SQL查询编写提示词
本提示词方案旨在将“高质量BI报表SQL查询编写”这一技术需求,转化为一套结构清晰、可直接执行的AI协作指南。
BI报表
SQL查询
查询编写
提示词内容
可直接复制使用
角色定义与任务定位 请以“数据分析架构师”的身份,与AI(如ChatGPT、Claude等代码助手)进行协作。你的核心目标是:将模糊的报表需求转化为精准、高效、可维护的SQL查询代码。你负责提供清晰的业务逻辑、数据关系与性能要求,引导AI生成可直接嵌入BI工具(如Tableau、Power BI、FineReport等)或数据系统的生产级SQL语句。 适用场景 为BI报表(如销售仪表盘、运营周报、财务分析看板)编写底层数据查询。 优化现有报表查询的性能与可读性。 构建复杂的数据汇总、多层钻取或趋势分析查询。 确保查询结果能直接对接BI工具的可视化组件(如图表、筛选器)。 核心提示词(可直接使用或组合) 基础聚合查询:“编写一个SQL查询,从‘sales_orders’表计算过去30天每个产品类别的总销售额、订单数和平均订单金额,结果按销售额降序排列。” 多表关联与筛选:“基于‘users’(用户表)、‘orders’(订单表)和‘products’(产品表),查询本季度复购用户(订单数>=2)的消费明细,包括用户ID、姓名、购买产品名称、总消费金额和首次/末次购买日期。” 时间序列对比:“生成查询,对比今年与去年同期每月的营收数据,并计算同比增长率。数据来自‘financial_transactions’表,需处理可能的空值。” 数据质量检查:“编写一个用于数据质量监控的查询,找出‘customer_info’表中手机号格式错误、邮箱重复或关键字段为空的记录。” 风格方向(查询编写原则) 可读性优先:使用清晰的表别名、列别名,对复杂逻辑添加注释(--或/* */)。 模块化结构:对于复杂查询,优先使用CTE(公用表表达式)将逻辑分步,而非嵌套多层子查询。 性能意识:在提示中指明对关键字段(如日期、用户ID)建立索引的期望,并避免在WHERE子句中对字段进行函数操作。 BI友好:确保输出列名明确、数据类型适合可视化,并考虑参数化(如使用WHERE date >= ?)以适配BI工具的筛选器。 构图建议(查询结构规划) 确定“画布”(数据源):明确主表及关联表,理清JOIN关系(LEFT/INNER)和关联键。 布局“图层”(逻辑分层):将计算步骤分层,例如:第一层CTE清洗原始数据,第二层CTE进行聚合,最外层进行排序和最终筛选。 聚焦“主体”(核心指标):在SELECT部分突出核心业务指标,将辅助计算字段放在后面或CTE中。 设置“滤镜”(筛选条件):将时间范围、状态条件等动态筛选条件集中放在查询末尾或参数化位置。 细节强化(优化与提示要点) 指定数据库:在提示开头声明“针对MySQL 8.0”或“使用Snowflake语法”,以确保函数和语法准确。 明确处理规则:如“对空值使用COALESCE函数默认为0”、“使用SUM(CASE WHEN ... THEN ... END)进行条件聚合”。 定义输出格式:“请将金额字段格式化为两位小数”、“日期字段输出为‘YYYY-MM-DD’格式”。 提出性能要求:“查询需要在大约1000万行的表上快速执行,请考虑使用分区字段‘year_month’进行筛选。” 使用建议 向AI提供尽可能真实的表结构(字段名、类型)样本,可大幅提升生成准确性。 采用迭代方式:先让AI生成基础查询,再基于结果提出“优化性能”、“增加一个计算字段”或“处理某个边缘情况”等具体要求。 生成的查询务必在测试环境验证结果和性能,再投入生产环境。 将验证有效的提示词(特别是处理了复杂业务的)保存为模板,供团队复用。