[ { "id": "snpt_daily_gmv_trend", "title": "日GMV趋势", "desc": "按日统计GMV与订单量趋势", "type": "trend", "applicability": { "required_columns": [ "order_date", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": null, "fk_join_available": false, "notes": [ "GMV=SUM(price*quantity)", "请避免选择地址等PII字段" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" } ], "dialect_sql": { "mysql": "SELECT DATE(order_date) AS dt, SUM(price*quantity) AS gmv, COUNT(*) AS orders\nFROM {{table}}\nWHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\nGROUP BY dt\nORDER BY dt;" }, "business_caliber": "GMV口径:price×quantity;订单量:记录条数;粒度=日。", "examples": [ "近30天GMV趋势", "2025Q1每日GMV与订单数" ] }, { "id": "snpt_daily_gmv_ma7", "title": "7日GMV均线", "desc": "GMV按日与7日滑动平均", "type": "trend", "applicability": { "required_columns": [ "order_date", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": null, "fk_join_available": false, "notes": [ "窗口=包含当日的过去7天", "若日期有缺口,均线可能偏移" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" } ], "dialect_sql": { "mysql": "WITH d AS (\n SELECT DATE(order_date) AS dt, SUM(price*quantity) AS gmv\n FROM {{table}}\n WHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\n GROUP BY dt\n)\nSELECT dt,\n gmv,\n AVG(gmv) OVER (ORDER BY dt ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS gmv_ma7\nFROM d\nORDER BY dt;" }, "business_caliber": "GMV=price×quantity;窗口=7天(含当日),按自然日排序计算。", "examples": [ "本季度GMV与7日均线", "促销期走势平滑对比" ] }, { "id": "snpt_yoy_daily_gmv", "title": "GMV同比(日)", "desc": "对比去年同日GMV与同比%", "type": "ratio", "applicability": { "required_columns": [ "order_date", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": null, "fk_join_available": false, "notes": [ "需要查询窗口覆盖到去年的对应日期", "闰年按日期对齐处理" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" } ], "dialect_sql": { "mysql": "WITH cur AS (\n SELECT DATE(order_date) AS dt, SUM(price*quantity) AS gmv\n FROM {{table}}\n WHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\n GROUP BY dt\n),\nprev AS (\n SELECT DATE(DATE_SUB(order_date, INTERVAL 1 YEAR)) AS dt, SUM(price*quantity) AS gmv_last\n FROM {{table}}\n WHERE DATE(order_date) BETWEEN DATE_SUB({{start_date}}, INTERVAL 1 YEAR) AND DATE_SUB({{end_date}}, INTERVAL 1 YEAR)\n GROUP BY DATE(DATE_SUB(order_date, INTERVAL 1 YEAR))\n)\nSELECT c.dt,\n c.gmv,\n p.gmv_last,\n CASE WHEN p.gmv_last IS NULL OR p.gmv_last=0 THEN NULL ELSE (c.gmv - p.gmv_last)/p.gmv_last END AS yoy\nFROM cur c LEFT JOIN prev p ON c.dt = p.dt\nORDER BY c.dt;" }, "business_caliber": "同比=当日GMV与去年同日GMV之差/去年同日GMV;GMV=price×quantity。", "examples": [ "最近90天GMV同比曲线", "节假日同比表现" ] }, { "id": "snpt_topn_category_gmv", "title": "类目GMV排行", "desc": "按类目统计GMV并取TopN", "type": "topn", "applicability": { "required_columns": [ "order_date", "category", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": 6, "fk_join_available": false, "notes": [ "类目枚举较少,建议TopN<=6用于展示", "可追加订单量与件数" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" }, { "name": "top_n", "type": "int", "default": 10 } ], "dialect_sql": { "mysql": "SELECT category,\n SUM(price*quantity) AS gmv,\n COUNT(*) AS orders,\n SUM(quantity) AS qty\nFROM {{table}}\nWHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\nGROUP BY category\nORDER BY gmv DESC\nLIMIT {{top_n}};" }, "business_caliber": "GMV=price×quantity;统计范围=指定日期内;粒度=类目。", "examples": [ "上月类目Top5", "本季度类目GMV结构" ] }, { "id": "snpt_share_channel", "title": "渠道GMV占比", "desc": "统计各渠道GMV及占比", "type": "ratio", "applicability": { "required_columns": [ "order_date", "channel", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": 4, "fk_join_available": false, "notes": [ "占比以总GMV为分母;占比之和≈100%", "适合饼图/堆叠柱" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" } ], "dialect_sql": { "mysql": "WITH base AS (\n SELECT channel, SUM(price*quantity) AS gmv\n FROM {{table}}\n WHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\n GROUP BY channel\n), total AS (\n SELECT SUM(gmv) AS tg FROM base\n)\nSELECT b.channel, b.gmv, b.gmv/t.tg AS gmv_share\nFROM base b CROSS JOIN total t\nORDER BY b.gmv DESC;" }, "business_caliber": "渠道GMV占比=渠道GMV/全部渠道GMV;时间范围由参数限定。", "examples": [ "本月各渠道占比", "Q1渠道结构对比" ] }, { "id": "snpt_topn_product_gmv", "title": "商品GMV排行", "desc": "按商品ID统计GMV并取TopN", "type": "topn", "applicability": { "required_columns": [ "order_date", "product_id", "price", "quantity" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": 1000, "fk_join_available": true, "notes": [ "product_id基数较高,建议LIMIT<=50", "可与商品维表联查名称等属性" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" }, { "name": "top_n", "type": "int", "default": 20 } ], "dialect_sql": { "mysql": "SELECT product_id,\n SUM(price*quantity) AS gmv,\n SUM(quantity) AS qty,\n COUNT(*) AS orders\nFROM {{table}}\nWHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\nGROUP BY product_id\nORDER BY gmv DESC\nLIMIT {{top_n}};" }, "business_caliber": "GMV=price×quantity;粒度=商品ID。", "examples": [ "上周热销商品Top20", "年度销量Top10商品" ] }, { "id": "snpt_join_product_dim", "title": "商品维表联查", "desc": "以product_id关联商品维表或使用纯ID", "type": "join", "applicability": { "required_columns": [ "product_id" ], "time_column": null, "constraints": { "dim_cardinality_hint": 1000, "fk_join_available": true, "notes": [ "若无维表则保留纯ID版输出", "谨慎选择PII字段,勿输出地址类字段" ] } }, "variables": [ { "name": "dim_product", "type": "identifier" }, { "name": "select_cols", "type": "string", "default": "f.product_id, f.price, f.quantity" } ], "dialect_sql": { "mysql": "-- 命名版\nSELECT {{select_cols}}\nFROM {{table}} f\nLEFT JOIN {{dim_product}} d ON f.product_id = d.product_id;\n\n-- 纯ID版\nSELECT product_id, price, quantity FROM {{table}};" }, "business_caliber": "外键:product_id→商品维表主键;度量来源于事实表price与quantity。", "examples": [ "联查商品名称后做TopN", "仅用ID进行商品分析" ] }, { "id": "snpt_join_customer_dim", "title": "客户维表联查", "desc": "以customer_id关联客户维表或使用纯ID", "type": "join", "applicability": { "required_columns": [ "customer_id" ], "time_column": null, "constraints": { "dim_cardinality_hint": 2713, "fk_join_available": true, "notes": [ "如无维表,可直接按customer_id聚合", "避免输出shipping_address/billing_address等PII" ] } }, "variables": [ { "name": "dim_customer", "type": "identifier" }, { "name": "select_cols", "type": "string", "default": "c.customer_name, f.customer_id, SUM(f.price*f.quantity) AS gmv" } ], "dialect_sql": { "mysql": "-- 命名版\nSELECT {{select_cols}}\nFROM {{table}} f\nLEFT JOIN {{dim_customer}} c ON f.customer_id = c.customer_id\nGROUP BY c.customer_name, f.customer_id;\n\n-- 纯ID版\nSELECT customer_id, SUM(price*quantity) AS gmv\nFROM {{table}}\nGROUP BY customer_id;" }, "business_caliber": "外键:customer_id→客户维表主键;GMV=price×quantity。", "examples": [ "客户分群GMV", "重点客户消费额排行" ] }, { "id": "snpt_quality_dup_order", "title": "主键重复检查", "desc": "检查order_id唯一性并抽样输出", "type": "quality", "applicability": { "required_columns": [ "order_id" ], "time_column": null, "constraints": { "dim_cardinality_hint": 10000, "fk_join_available": false, "notes": [ "画像显示order_id应唯一;若结果非空为异常" ] } }, "variables": [ { "name": "limit_sample", "type": "int", "default": 50 } ], "dialect_sql": { "mysql": "WITH d AS (\n SELECT order_id, COUNT(*) AS cnt\n FROM {{table}}\n GROUP BY order_id\n HAVING COUNT(*)>1\n)\nSELECT * FROM d LIMIT {{limit_sample}};" }, "business_caliber": "主键口径:order_id全表唯一;用于数据质量预警与排查。", "examples": [ "是否存在重复订单?", "查看重复订单样本" ] }, { "id": "snpt_quality_price_outlier", "title": "价格异常检测", "desc": "基于当日均值±3σ识别异常价", "type": "quality", "applicability": { "required_columns": [ "order_date", "price" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": null, "fk_join_available": false, "notes": [ "仅质量预警,不直接代表业务错误", "当天样本过少时波动较大" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" }, { "name": "limit_sample", "type": "int", "default": 100 } ], "dialect_sql": { "mysql": "WITH stats AS (\n SELECT DATE(order_date) AS dt, AVG(price) AS mu, STDDEV_POP(price) AS sigma\n FROM {{table}}\n WHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\n GROUP BY dt\n)\nSELECT f.*\nFROM {{table}} f\nJOIN stats s ON DATE(f.order_date)=s.dt\nWHERE (f.price > s.mu + 3*s.sigma OR f.price < s.mu - 3*s.sigma)\nLIMIT {{limit_sample}};" }, "business_caliber": "异常定义:价格超出当日均值±3×标准差(总体标准差)。", "examples": [ "近30天价格异常样本", "促销期异常价监控" ] }, { "id": "snpt_sample_recent_orders", "title": "近期明细抽样", "desc": "抽样查看近期订单核心字段", "type": "sample", "applicability": { "required_columns": [ "order_date", "order_id", "customer_id", "product_id", "category", "price", "quantity", "channel", "payment_method", "delivery_status" ], "time_column": "order_date", "constraints": { "dim_cardinality_hint": null, "fk_join_available": true, "notes": [ "为保护隐私,不展示shipping_address与billing_address", "仅用于人工核验" ] } }, "variables": [ { "name": "start_date", "type": "date" }, { "name": "end_date", "type": "date" }, { "name": "limit_rows", "type": "int", "default": 100 } ], "dialect_sql": { "mysql": "SELECT DATE(order_date) AS dt,\n order_id, customer_id, product_id, category,\n price, quantity, channel, payment_method, delivery_status\nFROM {{table}}\nWHERE DATE(order_date) BETWEEN {{start_date}} AND {{end_date}}\nORDER BY dt DESC\nLIMIT {{limit_rows}};" }, "business_caliber": "明细抽样用于数据核验;不输出PII地址信息。", "examples": [ "抽样查看上周订单", "核对节假日订单明细" ] }, { "id": "snpt_filter_paid_delivered", "title": "支付已送达筛选", "desc": "过滤支付方式为信用卡且配送状态为已送达", "type": "sample", "applicability": { "required_columns": [ "payment_method", "delivery_status" ], "time_column": null, "constraints": { "dim_cardinality_hint": 5, "fk_join_available": false, "notes": [ "此片段为WHERE条件模板,可拼接到任意查询", "delivery_status枚举包含Delivered/Pending/Returned/Shipped" ] } }, "variables": [], "dialect_sql": { "mysql": "WHERE payment_method = 'Credit Card' AND delivery_status = 'Delivered'" }, "business_caliber": "口径:支付渠道=信用卡;物流状态=已送达(Delivered)。可与时间或维度条件叠加。", "examples": [ "筛选信用卡已送达订单", "在TopN商品中仅看已送达信用卡订单" ] }, { "id": "snpt_filter_device_channel", "title": "设备渠道筛选", "desc": "按设备类型与渠道过滤分析范围", "type": "sample", "applicability": { "required_columns": [ "device_type", "channel" ], "time_column": null, "constraints": { "dim_cardinality_hint": 7, "fk_join_available": false, "notes": [ "device_type枚举:Desktop/Mobile/Tablet", "channel枚举:Email/Organic/Paid Search/Social" ] } }, "variables": [], "dialect_sql": { "mysql": "WHERE device_type IN ('Mobile','Desktop') AND channel IN ('Paid Search','Social')" }, "business_caliber": "限制分析在指定设备与渠道;可直接作为WHERE子句片段复用。", "examples": [ "仅看移动端付费渠道GMV", "桌面+社媒渠道订单明细" ] } ]