请求 #1
SEQ 110{
"isolation_policy_hash": "69527f7e75b08cc1cf82464c18ce5c5af3948e17b4b3b9c3e56ea87a7507340c",
"status": "running"
}案例记录 case-run-00045
找出累计已完成消费高于有已完成订单客户平均累计消费的客户,输出 customer_id、customer_name、total_spend,并按 total_spend 降序、customer_id 升序;必须至少两层 derived table 或子查询。
以下字段来自本次运行的冻结记录。
#12#451completed19,441不可估算未记录205mscodex_clitextgpt-5.6-solgpt-5.6-sol未提供2026年8月29日 16:402026年8月29日 16:400a4a18b4374f510f5eff18b06272c30c3375e1f082ae405adc8ead7dd9c81556显示本次实际保存的完整 Prompt。
你是 Text-to-SQL 生成器。只生成完成问题所需的 SQL 和简短可见摘要,不输出隐藏推理。
方言与安全规则:
Use DuckDB SQL. Return exactly one read-only query. Do not access files, URLs, extensions, or schemas outside the supplied tables.
数据库结构:
{"semantic_relationships":[{"cardinality":"many_to_one","from_entity":"order","sql_on":"fact_orders.customer_id = dim_customers.customer_id","to_entity":"customer"},{"cardinality":"many_to_one","from_entity":"order","sql_on":"fact_orders.channel_id = dim_channels.channel_id","to_entity":"channel"},{"cardinality":"many_to_one","from_entity":"order_item","sql_on":"fact_order_items.order_id = fact_orders.order_id","to_entity":"order"},{"cardinality":"many_to_one","from_entity":"order_item","sql_on":"fact_order_items.product_id = dim_products.product_id","to_entity":"product"},{"cardinality":"many_to_one","from_entity":"payment","sql_on":"fact_payments.order_id = fact_orders.order_id","to_entity":"order"},{"cardinality":"many_to_one","from_entity":"return","sql_on":"fact_returns.order_id = fact_order_items.order_id AND fact_returns.line_no = fact_order_items.line_no","to_entity":"order_item"}],"tables":[{"columns":[{"data_type":"BIGINT","name":"channel_id","nullable":false},{"data_type":"VARCHAR","name":"channel_name","nullable":false},{"data_type":"VARCHAR","name":"channel_type","nullable":false}],"foreign_keys":[],"name":"dim_channels","primary_key":["channel_id"]},{"columns":[{"data_type":"BIGINT","name":"customer_id","nullable":false},{"data_type":"VARCHAR","name":"customer_name","nullable":false},{"data_type":"VARCHAR","name":"city","nullable":true},{"data_type":"DATE","name":"signup_date","nullable":false},{"data_type":"VARCHAR","name":"segment","nullable":false}],"foreign_keys":[],"name":"dim_customers","primary_key":["customer_id"]},{"columns":[{"data_type":"BIGINT","name":"product_id","nullable":false},{"data_type":"VARCHAR","name":"product_name","nullable":false},{"data_type":"VARCHAR","name":"category","nullable":false},{"data_type":"VARCHAR","name":"brand","nullable":false},{"data_type":"DECIMAL(14,2)","name":"list_price","nullable":false}],"foreign_keys":[],"name":"dim_products","primary_key":["product_id"]},{"columns":[{"data_type":"BIGINT","name":"order_id","nullable":false},{"data_type":"BIGINT","name":"line_no","nullable":false},{"data_type":"BIGINT","name":"product_id","nullable":false},{"data_type":"BIGINT","name":"quantity","nullable":false},{"data_type":"DECIMAL(14,2)","name":"unit_price","nullable":false},{"data_type":"DECIMAL(14,2)","name":"discount_amount","nullable":false}],"foreign_keys":[{"columns":["order_id"],"referenced_columns":["order_id"],"referenced_table":"fact_orders"},{"columns":["product_id"],"referenced_columns":["product_id"],"referenced_table":"dim_products"}],"name":"fact_order_items","primary_key":["order_id","line_no"]},{"columns":[{"data_type":"BIGINT","name":"order_id","nullable":false},{"data_type":"BIGINT","name":"customer_id","nullable":false},{"data_type":"BIGINT","name":"channel_id","nullable":false},{"data_type":"DATE","name":"order_date","nullable":false},{"data_type":"VARCHAR","name":"status","nullable":false},{"data_type":"DECIMAL(14,2)","name":"total_amount","nullable":false}],"foreign_keys":[{"columns":["customer_id"],"referenced_columns":["customer_id"],"referenced_table":"dim_customers"},{"columns":["channel_id"],"referenced_columns":["channel_id"],"referenced_table":"dim_channels"}],"name":"fact_orders","primary_key":["order_id"]},{"columns":[{"data_type":"BIGINT","name":"payment_id","nullable":false},{"data_type":"BIGINT","name":"order_id","nullable":false},{"data_type":"TIMESTAMP","name":"paid_at","nullable":false},{"data_type":"VARCHAR","name":"payment_method","nullable":false},{"data_type":"DECIMAL(14,2)","name":"amount","nullable":false},{"data_type":"VARCHAR","name":"status","nullable":false}],"foreign_keys":[{"columns":["order_id"],"referenced_columns":["order_id"],"referenced_table":"fact_orders"}],"name":"fact_payments","primary_key":["payment_id"]},{"columns":[{"data_type":"BIGINT","name":"return_id","nullable":false},{"data_type":"BIGINT","name":"order_id","nullable":false},{"data_type":"BIGINT","name":"line_no","nullable":false},{"data_type":"TIMESTAMP","name":"returned_at","nullable":false},{"data_type":"BIGINT","name":"return_qty","nullable":false},{"data_type":"DECIMAL(14,2)","name":"refund_amount","nullable":false},{"data_type":"VARCHAR","name":"reason","nullable":true}],"foreign_keys":[{"columns":["order_id","line_no"],"referenced_columns":["order_id","line_no"],"referenced_table":"fact_order_items"}],"name":"fact_returns","primary_key":["return_id"]}]}
语义层与业务口径:
{"business_rules":["完成订单仅指 fact_orders.status = 'completed'。","净销售额为 quantity * unit_price - discount_amount。","paid、refunded、failed 金额只按 fact_payments.status 分类。","退货率为完成订单的 returned_qty / sold_qty,售出数量仅含完成订单。","月份按 UTC Gregorian calendar 计算。"],"dimensions":[{"data_type":"VARCHAR","description":"客户分群","expression":"dim_customers.segment","name":"customer_segment"},{"data_type":"VARCHAR","description":"商品品类","expression":"dim_products.category","name":"product_category"},{"data_type":"VARCHAR","description":"渠道类型","expression":"dim_channels.channel_type","name":"channel_type"},{"data_type":"VARCHAR","description":"UTC Gregorian 月份","expression":"strftime(fact_orders.order_date, '%Y-%m')","name":"order_month"}],"entities":[{"description":"客户主数据","grain":"每行一个客户","name":"customer","primary_key":["customer_id"],"table":"dim_customers"},{"description":"商品主数据","grain":"每行一个商品","name":"product","primary_key":["product_id"],"table":"dim_products"},{"description":"渠道主数据","grain":"每行一个渠道","name":"channel","primary_key":["channel_id"],"table":"dim_channels"},{"description":"订单头","grain":"每行一个订单","name":"order","primary_key":["order_id"],"table":"fact_orders"},{"description":"订单行","grain":"每行一个订单商品行","name":"order_item","primary_key":["order_id","line_no"],"table":"fact_order_items"},{"description":"支付尝试","grain":"每行一笔支付","name":"payment","primary_key":["payment_id"],"table":"fact_payments"},{"description":"退货记录","grain":"每行一条订单行退货","name":"return","primary_key":["return_id"],"table":"fact_returns"}],"metrics":[{"description":"已完成订单数","expression":"COUNT(DISTINCT CASE WHEN fact_orders.status = 'completed' THEN fact_orders.order_id END)","filters":["fact_orders.status = 'completed'"],"grain":"聚合","name":"completed_order_count"},{"description":"完成订单商品行净销售额","expression":"SUM(fact_order_items.quantity * fact_order_items.unit_price - fact_order_items.discount_amount)","filters":["fact_orders.status = 'completed'"],"grain":"聚合","name":"net_revenue"},{"description":"成功支付金额","expression":"SUM(CASE WHEN fact_payments.status = 'paid' THEN fact_payments.amount ELSE 0 END)","filters":[],"grain":"聚合","name":"paid_amount"},{"description":"退款状态支付金额","expression":"SUM(CASE WHEN fact_payments.status = 'refunded' THEN fact_payments.amount ELSE 0 END)","filters":[],"grain":"聚合","name":"refunded_amount"},{"description":"失败支付金额","expression":"SUM(CASE WHEN fact_payments.status = 'failed' THEN fact_payments.amount ELSE 0 END)","filters":[],"grain":"聚合","name":"failed_amount"},{"description":"完成订单退货数量除以售出数量","expression":"SUM(fact_returns.return_qty) / SUM(fact_order_items.quantity)","filters":["fact_orders.status = 'completed'"],"grain":"聚合","name":"return_rate"}],"relationships":[{"cardinality":"many_to_one","from_entity":"order","sql_on":"fact_orders.customer_id = dim_customers.customer_id","to_entity":"customer"},{"cardinality":"many_to_one","from_entity":"order","sql_on":"fact_orders.channel_id = dim_channels.channel_id","to_entity":"channel"},{"cardinality":"many_to_one","from_entity":"order_item","sql_on":"fact_order_items.order_id = fact_orders.order_id","to_entity":"order"},{"cardinality":"many_to_one","from_entity":"order_item","sql_on":"fact_order_items.product_id = dim_products.product_id","to_entity":"product"},{"cardinality":"many_to_one","from_entity":"payment","sql_on":"fact_payments.order_id = fact_orders.order_id","to_entity":"order"},{"cardinality":"many_to_one","from_entity":"return","sql_on":"fact_returns.order_id = fact_order_items.order_id AND fact_returns.line_no = fact_order_items.line_no","to_entity":"order_item"}]}
问题:
找出累计已完成消费高于有已完成订单客户平均累计消费的客户,输出 customer_id、customer_name、total_spend,并按 total_spend 降序、customer_id 升序;必须至少两层 derived table 或子查询。
输出必须严格匹配此 JSON Schema:
{"additionalProperties":false,"properties":{"assumptions":{"items":{"type":"string"},"title":"Assumptions","type":"array"},"sql":{"title":"Sql","type":"string"},"summary":{"title":"Summary","type":"string"}},"required":["sql","summary","assumptions"],"title":"GenerationOutput","type":"object"}按事件序号排列;密钥和 Authorization 已移除。
历史证据边界:完整 Prompt 已保存,但这次 codex_cli 记录没有保存底层 HTTP 报文或 CLI 参数。本站不会把推测内容伪装成原始请求;未来运行会在 provider.requested 中记录脱敏后的完整调用信封。
SEQ 110{
"isolation_policy_hash": "69527f7e75b08cc1cf82464c18ce5c5af3948e17b4b3b9c3e56ea87a7507340c",
"status": "running"
}分别显示原始响应、解析结果和 SQL。
{"sql":"SELECT\n customer_id,\n customer_name,\n total_spend\nFROM (\n SELECT\n customer_id,\n customer_name,\n total_spend,\n AVG(total_spend) OVER () AS avg_total_spend\n FROM (\n SELECT\n c.customer_id,\n c.customer_name,\n SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend\n FROM dim_customers AS c\n JOIN fact_orders AS o\n ON o.customer_id = c.customer_id\n JOIN fact_order_items AS oi\n ON oi.order_id = o.order_id\n WHERE o.status = 'completed'\n GROUP BY c.customer_id, c.customer_name\n ) AS customer_spend\n) AS customer_spend_with_avg\nWHERE total_spend > avg_total_spend\nORDER BY total_spend DESC, customer_id ASC","summary":"返回累计已完成订单净消费高于有已完成订单客户平均累计消费的客户,并按消费额降序、客户 ID 升序排列。","assumptions":["total_spend 按完成订单商品行净销售额计算,即 quantity * unit_price - discount_amount。","平均值仅基于至少有一笔已完成订单且存在订单商品行的客户计算。"]}没有可解析方案。
SELECT
customer_id,
customer_name,
total_spend
FROM (
SELECT
customer_id,
customer_name,
total_spend,
AVG(total_spend) OVER () AS avg_total_spend
FROM (
SELECT
c.customer_id,
c.customer_name,
SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend
FROM dim_customers AS c
JOIN fact_orders AS o
ON o.customer_id = c.customer_id
JOIN fact_order_items AS oi
ON oi.order_id = o.order_id
WHERE o.status = 'completed'
GROUP BY c.customer_id, c.customer_name
) AS customer_spend
) AS customer_spend_with_avg
WHERE total_spend > avg_total_spend
ORDER BY total_spend DESC, customer_id ASCSELECT
customer_id,
customer_name,
total_spend
FROM (
SELECT
customer_id,
customer_name,
total_spend,
AVG(total_spend) OVER () AS avg_total_spend
FROM (
SELECT
c.customer_id,
c.customer_name,
SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend
FROM dim_customers AS c
JOIN fact_orders AS o
ON o.customer_id = c.customer_id
JOIN fact_order_items AS oi
ON oi.order_id = o.order_id
WHERE
o.status = 'completed'
GROUP BY
c.customer_id,
c.customer_name
) AS customer_spend
) AS customer_spend_with_avg
WHERE
total_spend > avg_total_spend
ORDER BY
total_spend DESC,
customer_id ASC{
"token_usage": {
"cache_write_input_tokens": 0,
"cached_input_tokens": 0,
"input_tokens": 19152,
"output_tokens": 289,
"reasoning_output_tokens": 0
},
"generation_ms": null,
"execution_ms": 204.59845900040818
}包含评分明细、参考 SQL、结构要求、比较规则和结果差异。
{
"ast_rules": [
{
"details": {
"actual": 3,
"required": 3
},
"id": "depth-3",
"kind": "query_depth",
"passed": true
}
],
"column_count": 5,
"column_names": 5,
"execution": 10,
"ordering": 10,
"protocol": 5,
"read_only_ast": 5,
"row_f1": 45,
"sql_capability": 15,
"total": 100
}SELECT spend.customer_id, c.customer_name, spend.total_spend FROM (SELECT customer_id, SUM(total_amount) AS total_spend FROM fact_orders WHERE status = 'completed' GROUP BY customer_id) spend JOIN dim_customers c ON c.customer_id = spend.customer_id WHERE spend.total_spend > (SELECT AVG(avg_source.total_spend) FROM (SELECT customer_id, SUM(total_amount) AS total_spend FROM fact_orders WHERE status = 'completed' GROUP BY customer_id) avg_source) ORDER BY spend.total_spend DESC, spend.customer_id ASC[
{
"id": "depth-3",
"kind": "query_depth",
"min": 3
}
]{
"abs_tolerance": "0.005",
"decimal_scale": 2,
"duplicate_policy": "multiset",
"max_rows": 10000,
"rel_tolerance": "0",
"row_order_significant": true
}{
"columns": [
{
"name": "customer_id",
"type": "BIGINT"
},
{
"name": "customer_name",
"type": "VARCHAR"
},
{
"name": "total_spend",
"type": "DECIMAL(38,2)"
}
],
"digest": "1807470fd5a54f9a825dc6e6fa6216338031e366d4592163fafaf182bcbf7ed5",
"row_count": 53,
"rows": [
[
17,
"客户-017",
"12860.50"
],
[
107,
"客户-107",
"12370.50"
],
[
104,
"客户-104",
"11772.25"
],
[
13,
"客户-013",
"11433.25"
],
[
21,
"客户-021",
"10899.00"
],
[
44,
"客户-044",
"10014.50"
],
[
80,
"客户-080",
"9556.25"
],
[
67,
"客户-067",
"9322.00"
],
[
1,
"客户-001",
"9321.75"
],
[
65,
"客户-065",
"9175.75"
],
[
85,
"客户-085",
"9157.75"
],
[
12,
"客户-012",
"8901.75"
],
[
2,
"客户-002",
"8572.00"
],
[
43,
"客户-043",
"8442.00"
],
[
95,
"客户-095",
"8306.00"
],
[
94,
"客户-094",
"8156.50"
],
[
46,
"客户-046",
"8136.50"
],
[
29,
"客户-029",
"8083.75"
],
[
109,
"客户-109",
"8003.75"
],
[
10,
"客户-010",
"7933.75"
],
[
31,
"客户-031",
"7833.75"
],
[
69,
"客户-069",
"7636.00"
],
[
59,
"客户-059",
"7491.50"
],
[
53,
"客户-053",
"7487.00"
],
[
20,
"客户-020",
"7482.75"
],
[
70,
"客户-070",
"7278.00"
],
[
38,
"客户-038",
"7042.00"
],
[
15,
"客户-015",
"6957.50"
],
[
56,
"客户-056",
"6878.50"
],
[
82,
"客户-082",
"6805.25"
],
[
74,
"客户-074",
"6759.50"
],
[
48,
"客户-048",
"6726.00"
],
[
36,
"客户-036",
"6578.00"
],
[
14,
"客户-014",
"6505.00"
],
[
61,
"客户-061",
"6371.75"
],
[
50,
"客户-050",
"6294.50"
],
[
78,
"客户-078",
"6170.25"
],
[
89,
"客户-089",
"6129.25"
],
[
5,
"客户-005",
"6070.25"
],
[
34,
"客户-034",
"5893.00"
],
[
32,
"客户-032",
"5828.75"
],
[
93,
"客户-093",
"5799.25"
],
[
71,
"客户-071",
"5791.25"
],
[
24,
"客户-024",
"5717.00"
],
[
106,
"客户-106",
"5662.25"
],
[
105,
"客户-105",
"5632.25"
],
[
60,
"客户-060",
"5597.50"
],
[
39,
"客户-039",
"5563.00"
],
[
92,
"客户-092",
"5520.50"
],
[
45,
"客户-045",
"5449.75"
],
[
41,
"客户-041",
"5355.50"
],
[
49,
"客户-049",
"5309.00"
],
[
52,
"客户-052",
"5189.00"
]
]
}{
"columns": [
{
"name": "customer_id",
"type": "BIGINT"
},
{
"name": "customer_name",
"type": "VARCHAR"
},
{
"name": "total_spend",
"type": "DECIMAL(38,2)"
}
],
"extra": [],
"missing": [],
"row_count": 53,
"rows": [
[
17,
"客户-017",
"12860.50"
],
[
107,
"客户-107",
"12370.50"
],
[
104,
"客户-104",
"11772.25"
],
[
13,
"客户-013",
"11433.25"
],
[
21,
"客户-021",
"10899.00"
],
[
44,
"客户-044",
"10014.50"
],
[
80,
"客户-080",
"9556.25"
],
[
67,
"客户-067",
"9322.00"
],
[
1,
"客户-001",
"9321.75"
],
[
65,
"客户-065",
"9175.75"
],
[
85,
"客户-085",
"9157.75"
],
[
12,
"客户-012",
"8901.75"
],
[
2,
"客户-002",
"8572.00"
],
[
43,
"客户-043",
"8442.00"
],
[
95,
"客户-095",
"8306.00"
],
[
94,
"客户-094",
"8156.50"
],
[
46,
"客户-046",
"8136.50"
],
[
29,
"客户-029",
"8083.75"
],
[
109,
"客户-109",
"8003.75"
],
[
10,
"客户-010",
"7933.75"
],
[
31,
"客户-031",
"7833.75"
],
[
69,
"客户-069",
"7636.00"
],
[
59,
"客户-059",
"7491.50"
],
[
53,
"客户-053",
"7487.00"
],
[
20,
"客户-020",
"7482.75"
],
[
70,
"客户-070",
"7278.00"
],
[
38,
"客户-038",
"7042.00"
],
[
15,
"客户-015",
"6957.50"
],
[
56,
"客户-056",
"6878.50"
],
[
82,
"客户-082",
"6805.25"
],
[
74,
"客户-074",
"6759.50"
],
[
48,
"客户-048",
"6726.00"
],
[
36,
"客户-036",
"6578.00"
],
[
14,
"客户-014",
"6505.00"
],
[
61,
"客户-061",
"6371.75"
],
[
50,
"客户-050",
"6294.50"
],
[
78,
"客户-078",
"6170.25"
],
[
89,
"客户-089",
"6129.25"
],
[
5,
"客户-005",
"6070.25"
],
[
34,
"客户-034",
"5893.00"
],
[
32,
"客户-032",
"5828.75"
],
[
93,
"客户-093",
"5799.25"
],
[
71,
"客户-071",
"5791.25"
],
[
24,
"客户-024",
"5717.00"
],
[
106,
"客户-106",
"5662.25"
],
[
105,
"客户-105",
"5632.25"
],
[
60,
"客户-060",
"5597.50"
],
[
39,
"客户-039",
"5563.00"
],
[
92,
"客户-092",
"5520.50"
],
[
45,
"客户-045",
"5449.75"
],
[
41,
"客户-041",
"5355.50"
],
[
49,
"客户-049",
"5309.00"
],
[
52,
"客户-052",
"5189.00"
]
]
}{
"visible_summary": "返回累计已完成订单净消费高于有已完成订单客户平均累计消费的客户,并按消费额降序、客户 ID 升序排列。",
"error_code": null,
"error_message": null,
"expected_digest": "1807470fd5a54f9a825dc6e6fa6216338031e366d4592163fafaf182bcbf7ed5",
"actual_digest": "eb72330d9c0aa4fef8cac6146e8cd3af4ca1fd27f6cc324556e86577372f16b6",
"assumptions": null
}按全局事件序号排列,保留时间、级别、类型、消息和 payload。
SEQ 108case.startedinfo{
"status": "generating"
}SEQ 109prompt.builtinfo{
"status": "completed"
}SEQ 110provider.requestedinfo{
"isolation_policy_hash": "69527f7e75b08cc1cf82464c18ce5c5af3948e17b4b3b9c3e56ea87a7507340c",
"status": "running"
}SEQ 111provider.deltainfo{
"text": "{\"sql\":\"SELECT\\n customer_id,\\n customer_name,\\n total_spend\\nFROM (\\n SELECT\\n customer_id,\\n customer_name,\\n total_spend,\\n AVG(total_spend) OVER () AS avg_total_spend\\n FROM (\\n SELECT\\n c.customer_id,\\n c.customer_name,\\n SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend\\n FROM dim_customers AS c\\n JOIN fact_orders AS o\\n ON o.customer_id = c.customer_id\\n JOIN fact_order_items AS oi\\n ON oi.order_id = o.order_id\\n WHERE o.status = 'completed'\\n GROUP BY c.customer_id, c.customer_name\\n ) AS customer_spend\\n) AS customer_spend_with_avg\\nWHERE total_spend > avg_total_spend\\nORDER BY total_spend DESC, customer_id ASC\",\"summary\":\"返回累计已完成订单净消费高于有已完成订单客户平均累计消费的客户,并按消费额降序、客户 ID 升序排列。\",\"assumptions\":[\"total_spend 按完成订单商品行净销售额计算,即 quantity * unit_price - discount_amount。\",\"平均值仅基于至少有一笔已完成订单且存在订单商品行的客户计算。\"]}"
}SEQ 112provider.completedinfo{
"elapsed_ms": 19122.992707998492,
"status": "completed",
"token_usage": {
"cache_write_input_tokens": 0,
"cached_input_tokens": 0,
"input_tokens": 19152,
"output_tokens": 289,
"reasoning_output_tokens": 0
}
}SEQ 113sql.parsedinfo{
"status": "completed"
}SEQ 114score.completedinfo{
"score": 100,
"status": "completed"
}完整 JSON 字段,不经过页面裁剪。
{
"actual_digest": "eb72330d9c0aa4fef8cac6146e8cd3af4ca1fd27f6cc324556e86577372f16b6",
"assumptions": null,
"attempt": 1,
"category": "nested_query",
"comparison": {
"abs_tolerance": "0.005",
"decimal_scale": 2,
"duplicate_policy": "multiset",
"max_rows": 10000,
"rel_tolerance": "0",
"row_order_significant": true
},
"difficulty": "hard",
"error_code": null,
"error_message": null,
"execution_ms": 204.59845900040818,
"expected_digest": "1807470fd5a54f9a825dc6e6fa6216338031e366d4592163fafaf182bcbf7ed5",
"expected_result_preview": {
"columns": [
{
"name": "customer_id",
"type": "BIGINT"
},
{
"name": "customer_name",
"type": "VARCHAR"
},
{
"name": "total_spend",
"type": "DECIMAL(38,2)"
}
],
"digest": "1807470fd5a54f9a825dc6e6fa6216338031e366d4592163fafaf182bcbf7ed5",
"row_count": 53,
"rows": [
[
17,
"客户-017",
"12860.50"
],
[
107,
"客户-107",
"12370.50"
],
[
104,
"客户-104",
"11772.25"
],
[
13,
"客户-013",
"11433.25"
],
[
21,
"客户-021",
"10899.00"
],
[
44,
"客户-044",
"10014.50"
],
[
80,
"客户-080",
"9556.25"
],
[
67,
"客户-067",
"9322.00"
],
[
1,
"客户-001",
"9321.75"
],
[
65,
"客户-065",
"9175.75"
],
[
85,
"客户-085",
"9157.75"
],
[
12,
"客户-012",
"8901.75"
],
[
2,
"客户-002",
"8572.00"
],
[
43,
"客户-043",
"8442.00"
],
[
95,
"客户-095",
"8306.00"
],
[
94,
"客户-094",
"8156.50"
],
[
46,
"客户-046",
"8136.50"
],
[
29,
"客户-029",
"8083.75"
],
[
109,
"客户-109",
"8003.75"
],
[
10,
"客户-010",
"7933.75"
],
[
31,
"客户-031",
"7833.75"
],
[
69,
"客户-069",
"7636.00"
],
[
59,
"客户-059",
"7491.50"
],
[
53,
"客户-053",
"7487.00"
],
[
20,
"客户-020",
"7482.75"
],
[
70,
"客户-070",
"7278.00"
],
[
38,
"客户-038",
"7042.00"
],
[
15,
"客户-015",
"6957.50"
],
[
56,
"客户-056",
"6878.50"
],
[
82,
"客户-082",
"6805.25"
],
[
74,
"客户-074",
"6759.50"
],
[
48,
"客户-048",
"6726.00"
],
[
36,
"客户-036",
"6578.00"
],
[
14,
"客户-014",
"6505.00"
],
[
61,
"客户-061",
"6371.75"
],
[
50,
"客户-050",
"6294.50"
],
[
78,
"客户-078",
"6170.25"
],
[
89,
"客户-089",
"6129.25"
],
[
5,
"客户-005",
"6070.25"
],
[
34,
"客户-034",
"5893.00"
],
[
32,
"客户-032",
"5828.75"
],
[
93,
"客户-093",
"5799.25"
],
[
71,
"客户-071",
"5791.25"
],
[
24,
"客户-024",
"5717.00"
],
[
106,
"客户-106",
"5662.25"
],
[
105,
"客户-105",
"5632.25"
],
[
60,
"客户-060",
"5597.50"
],
[
39,
"客户-039",
"5563.00"
],
[
92,
"客户-092",
"5520.50"
],
[
45,
"客户-045",
"5449.75"
],
[
41,
"客户-041",
"5355.50"
],
[
49,
"客户-049",
"5309.00"
],
[
52,
"客户-052",
"5189.00"
]
]
},
"finished_at": "2026-08-29T16:40:45.822767",
"formatted_sql": "SELECT\n customer_id,\n customer_name,\n total_spend\nFROM (\n SELECT\n customer_id,\n customer_name,\n total_spend,\n AVG(total_spend) OVER () AS avg_total_spend\n FROM (\n SELECT\n c.customer_id,\n c.customer_name,\n SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend\n FROM dim_customers AS c\n JOIN fact_orders AS o\n ON o.customer_id = c.customer_id\n JOIN fact_order_items AS oi\n ON oi.order_id = o.order_id\n WHERE\n o.status = 'completed'\n GROUP BY\n c.customer_id,\n c.customer_name\n ) AS customer_spend\n) AS customer_spend_with_avg\nWHERE\n total_spend > avg_total_spend\nORDER BY\n total_spend DESC,\n customer_id ASC",
"generated_sql": "SELECT\n customer_id,\n customer_name,\n total_spend\nFROM (\n SELECT\n customer_id,\n customer_name,\n total_spend,\n AVG(total_spend) OVER () AS avg_total_spend\n FROM (\n SELECT\n c.customer_id,\n c.customer_name,\n SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend\n FROM dim_customers AS c\n JOIN fact_orders AS o\n ON o.customer_id = c.customer_id\n JOIN fact_order_items AS oi\n ON oi.order_id = o.order_id\n WHERE o.status = 'completed'\n GROUP BY c.customer_id, c.customer_name\n ) AS customer_spend\n) AS customer_spend_with_avg\nWHERE total_spend > avg_total_spend\nORDER BY total_spend DESC, customer_id ASC",
"generation_ms": null,
"id": 45,
"model_name": "Sol 本机实测",
"model_run_id": 13,
"plan": null,
"prompt": "你是 Text-to-SQL 生成器。只生成完成问题所需的 SQL 和简短可见摘要,不输出隐藏推理。\n\n方言与安全规则:\nUse DuckDB SQL. Return exactly one read-only query. Do not access files, URLs, extensions, or schemas outside the supplied tables.\n\n数据库结构:\n{\"semantic_relationships\":[{\"cardinality\":\"many_to_one\",\"from_entity\":\"order\",\"sql_on\":\"fact_orders.customer_id = dim_customers.customer_id\",\"to_entity\":\"customer\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order\",\"sql_on\":\"fact_orders.channel_id = dim_channels.channel_id\",\"to_entity\":\"channel\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order_item\",\"sql_on\":\"fact_order_items.order_id = fact_orders.order_id\",\"to_entity\":\"order\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order_item\",\"sql_on\":\"fact_order_items.product_id = dim_products.product_id\",\"to_entity\":\"product\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"payment\",\"sql_on\":\"fact_payments.order_id = fact_orders.order_id\",\"to_entity\":\"order\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"return\",\"sql_on\":\"fact_returns.order_id = fact_order_items.order_id AND fact_returns.line_no = fact_order_items.line_no\",\"to_entity\":\"order_item\"}],\"tables\":[{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"channel_id\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"channel_name\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"channel_type\",\"nullable\":false}],\"foreign_keys\":[],\"name\":\"dim_channels\",\"primary_key\":[\"channel_id\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"customer_id\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"customer_name\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"city\",\"nullable\":true},{\"data_type\":\"DATE\",\"name\":\"signup_date\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"segment\",\"nullable\":false}],\"foreign_keys\":[],\"name\":\"dim_customers\",\"primary_key\":[\"customer_id\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"product_id\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"product_name\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"category\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"brand\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"list_price\",\"nullable\":false}],\"foreign_keys\":[],\"name\":\"dim_products\",\"primary_key\":[\"product_id\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"order_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"line_no\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"product_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"quantity\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"unit_price\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"discount_amount\",\"nullable\":false}],\"foreign_keys\":[{\"columns\":[\"order_id\"],\"referenced_columns\":[\"order_id\"],\"referenced_table\":\"fact_orders\"},{\"columns\":[\"product_id\"],\"referenced_columns\":[\"product_id\"],\"referenced_table\":\"dim_products\"}],\"name\":\"fact_order_items\",\"primary_key\":[\"order_id\",\"line_no\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"order_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"customer_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"channel_id\",\"nullable\":false},{\"data_type\":\"DATE\",\"name\":\"order_date\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"status\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"total_amount\",\"nullable\":false}],\"foreign_keys\":[{\"columns\":[\"customer_id\"],\"referenced_columns\":[\"customer_id\"],\"referenced_table\":\"dim_customers\"},{\"columns\":[\"channel_id\"],\"referenced_columns\":[\"channel_id\"],\"referenced_table\":\"dim_channels\"}],\"name\":\"fact_orders\",\"primary_key\":[\"order_id\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"payment_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"order_id\",\"nullable\":false},{\"data_type\":\"TIMESTAMP\",\"name\":\"paid_at\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"payment_method\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"amount\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"status\",\"nullable\":false}],\"foreign_keys\":[{\"columns\":[\"order_id\"],\"referenced_columns\":[\"order_id\"],\"referenced_table\":\"fact_orders\"}],\"name\":\"fact_payments\",\"primary_key\":[\"payment_id\"]},{\"columns\":[{\"data_type\":\"BIGINT\",\"name\":\"return_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"order_id\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"line_no\",\"nullable\":false},{\"data_type\":\"TIMESTAMP\",\"name\":\"returned_at\",\"nullable\":false},{\"data_type\":\"BIGINT\",\"name\":\"return_qty\",\"nullable\":false},{\"data_type\":\"DECIMAL(14,2)\",\"name\":\"refund_amount\",\"nullable\":false},{\"data_type\":\"VARCHAR\",\"name\":\"reason\",\"nullable\":true}],\"foreign_keys\":[{\"columns\":[\"order_id\",\"line_no\"],\"referenced_columns\":[\"order_id\",\"line_no\"],\"referenced_table\":\"fact_order_items\"}],\"name\":\"fact_returns\",\"primary_key\":[\"return_id\"]}]}\n\n语义层与业务口径:\n{\"business_rules\":[\"完成订单仅指 fact_orders.status = 'completed'。\",\"净销售额为 quantity * unit_price - discount_amount。\",\"paid、refunded、failed 金额只按 fact_payments.status 分类。\",\"退货率为完成订单的 returned_qty / sold_qty,售出数量仅含完成订单。\",\"月份按 UTC Gregorian calendar 计算。\"],\"dimensions\":[{\"data_type\":\"VARCHAR\",\"description\":\"客户分群\",\"expression\":\"dim_customers.segment\",\"name\":\"customer_segment\"},{\"data_type\":\"VARCHAR\",\"description\":\"商品品类\",\"expression\":\"dim_products.category\",\"name\":\"product_category\"},{\"data_type\":\"VARCHAR\",\"description\":\"渠道类型\",\"expression\":\"dim_channels.channel_type\",\"name\":\"channel_type\"},{\"data_type\":\"VARCHAR\",\"description\":\"UTC Gregorian 月份\",\"expression\":\"strftime(fact_orders.order_date, '%Y-%m')\",\"name\":\"order_month\"}],\"entities\":[{\"description\":\"客户主数据\",\"grain\":\"每行一个客户\",\"name\":\"customer\",\"primary_key\":[\"customer_id\"],\"table\":\"dim_customers\"},{\"description\":\"商品主数据\",\"grain\":\"每行一个商品\",\"name\":\"product\",\"primary_key\":[\"product_id\"],\"table\":\"dim_products\"},{\"description\":\"渠道主数据\",\"grain\":\"每行一个渠道\",\"name\":\"channel\",\"primary_key\":[\"channel_id\"],\"table\":\"dim_channels\"},{\"description\":\"订单头\",\"grain\":\"每行一个订单\",\"name\":\"order\",\"primary_key\":[\"order_id\"],\"table\":\"fact_orders\"},{\"description\":\"订单行\",\"grain\":\"每行一个订单商品行\",\"name\":\"order_item\",\"primary_key\":[\"order_id\",\"line_no\"],\"table\":\"fact_order_items\"},{\"description\":\"支付尝试\",\"grain\":\"每行一笔支付\",\"name\":\"payment\",\"primary_key\":[\"payment_id\"],\"table\":\"fact_payments\"},{\"description\":\"退货记录\",\"grain\":\"每行一条订单行退货\",\"name\":\"return\",\"primary_key\":[\"return_id\"],\"table\":\"fact_returns\"}],\"metrics\":[{\"description\":\"已完成订单数\",\"expression\":\"COUNT(DISTINCT CASE WHEN fact_orders.status = 'completed' THEN fact_orders.order_id END)\",\"filters\":[\"fact_orders.status = 'completed'\"],\"grain\":\"聚合\",\"name\":\"completed_order_count\"},{\"description\":\"完成订单商品行净销售额\",\"expression\":\"SUM(fact_order_items.quantity * fact_order_items.unit_price - fact_order_items.discount_amount)\",\"filters\":[\"fact_orders.status = 'completed'\"],\"grain\":\"聚合\",\"name\":\"net_revenue\"},{\"description\":\"成功支付金额\",\"expression\":\"SUM(CASE WHEN fact_payments.status = 'paid' THEN fact_payments.amount ELSE 0 END)\",\"filters\":[],\"grain\":\"聚合\",\"name\":\"paid_amount\"},{\"description\":\"退款状态支付金额\",\"expression\":\"SUM(CASE WHEN fact_payments.status = 'refunded' THEN fact_payments.amount ELSE 0 END)\",\"filters\":[],\"grain\":\"聚合\",\"name\":\"refunded_amount\"},{\"description\":\"失败支付金额\",\"expression\":\"SUM(CASE WHEN fact_payments.status = 'failed' THEN fact_payments.amount ELSE 0 END)\",\"filters\":[],\"grain\":\"聚合\",\"name\":\"failed_amount\"},{\"description\":\"完成订单退货数量除以售出数量\",\"expression\":\"SUM(fact_returns.return_qty) / SUM(fact_order_items.quantity)\",\"filters\":[\"fact_orders.status = 'completed'\"],\"grain\":\"聚合\",\"name\":\"return_rate\"}],\"relationships\":[{\"cardinality\":\"many_to_one\",\"from_entity\":\"order\",\"sql_on\":\"fact_orders.customer_id = dim_customers.customer_id\",\"to_entity\":\"customer\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order\",\"sql_on\":\"fact_orders.channel_id = dim_channels.channel_id\",\"to_entity\":\"channel\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order_item\",\"sql_on\":\"fact_order_items.order_id = fact_orders.order_id\",\"to_entity\":\"order\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"order_item\",\"sql_on\":\"fact_order_items.product_id = dim_products.product_id\",\"to_entity\":\"product\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"payment\",\"sql_on\":\"fact_payments.order_id = fact_orders.order_id\",\"to_entity\":\"order\"},{\"cardinality\":\"many_to_one\",\"from_entity\":\"return\",\"sql_on\":\"fact_returns.order_id = fact_order_items.order_id AND fact_returns.line_no = fact_order_items.line_no\",\"to_entity\":\"order_item\"}]}\n\n问题:\n找出累计已完成消费高于有已完成订单客户平均累计消费的客户,输出 customer_id、customer_name、total_spend,并按 total_spend 降序、customer_id 升序;必须至少两层 derived table 或子查询。\n\n输出必须严格匹配此 JSON Schema:\n{\"additionalProperties\":false,\"properties\":{\"assumptions\":{\"items\":{\"type\":\"string\"},\"title\":\"Assumptions\",\"type\":\"array\"},\"sql\":{\"title\":\"Sql\",\"type\":\"string\"},\"summary\":{\"title\":\"Summary\",\"type\":\"string\"}},\"required\":[\"sql\",\"summary\",\"assumptions\"],\"title\":\"GenerationOutput\",\"type\":\"object\"}",
"provider_request_id": null,
"question": "找出累计已完成消费高于有已完成订单客户平均累计消费的客户,输出 customer_id、customer_name、total_spend,并按 total_spend 降序、customer_id 升序;必须至少两层 derived table 或子查询。",
"radar_dimension": "复杂管道",
"raw_output": "{\"sql\":\"SELECT\\n customer_id,\\n customer_name,\\n total_spend\\nFROM (\\n SELECT\\n customer_id,\\n customer_name,\\n total_spend,\\n AVG(total_spend) OVER () AS avg_total_spend\\n FROM (\\n SELECT\\n c.customer_id,\\n c.customer_name,\\n SUM(oi.quantity * oi.unit_price - oi.discount_amount) AS total_spend\\n FROM dim_customers AS c\\n JOIN fact_orders AS o\\n ON o.customer_id = c.customer_id\\n JOIN fact_order_items AS oi\\n ON oi.order_id = o.order_id\\n WHERE o.status = 'completed'\\n GROUP BY c.customer_id, c.customer_name\\n ) AS customer_spend\\n) AS customer_spend_with_avg\\nWHERE total_spend > avg_total_spend\\nORDER BY total_spend DESC, customer_id ASC\",\"summary\":\"返回累计已完成订单净消费高于有已完成订单客户平均累计消费的客户,并按消费额降序、客户 ID 升序排列。\",\"assumptions\":[\"total_spend 按完成订单商品行净销售额计算,即 quantity * unit_price - discount_amount。\",\"平均值仅基于至少有一笔已完成订单且存在订单商品行的客户计算。\"]}",
"reference_sql": "SELECT spend.customer_id, c.customer_name, spend.total_spend FROM (SELECT customer_id, SUM(total_amount) AS total_spend FROM fact_orders WHERE status = 'completed' GROUP BY customer_id) spend JOIN dim_customers c ON c.customer_id = spend.customer_id WHERE spend.total_spend > (SELECT AVG(avg_source.total_spend) FROM (SELECT customer_id, SUM(total_amount) AS total_spend FROM fact_orders WHERE status = 'completed' GROUP BY customer_id) avg_source) ORDER BY spend.total_spend DESC, spend.customer_id ASC",
"requested_model_id": "gpt-5.6-sol",
"required_ast": [
{
"id": "depth-3",
"kind": "query_depth",
"min": 3
}
],
"resolved_model_id": "gpt-5.6-sol",
"result_preview": {
"columns": [
{
"name": "customer_id",
"type": "BIGINT"
},
{
"name": "customer_name",
"type": "VARCHAR"
},
{
"name": "total_spend",
"type": "DECIMAL(38,2)"
}
],
"extra": [],
"missing": [],
"row_count": 53,
"rows": [
[
17,
"客户-017",
"12860.50"
],
[
107,
"客户-107",
"12370.50"
],
[
104,
"客户-104",
"11772.25"
],
[
13,
"客户-013",
"11433.25"
],
[
21,
"客户-021",
"10899.00"
],
[
44,
"客户-044",
"10014.50"
],
[
80,
"客户-080",
"9556.25"
],
[
67,
"客户-067",
"9322.00"
],
[
1,
"客户-001",
"9321.75"
],
[
65,
"客户-065",
"9175.75"
],
[
85,
"客户-085",
"9157.75"
],
[
12,
"客户-012",
"8901.75"
],
[
2,
"客户-002",
"8572.00"
],
[
43,
"客户-043",
"8442.00"
],
[
95,
"客户-095",
"8306.00"
],
[
94,
"客户-094",
"8156.50"
],
[
46,
"客户-046",
"8136.50"
],
[
29,
"客户-029",
"8083.75"
],
[
109,
"客户-109",
"8003.75"
],
[
10,
"客户-010",
"7933.75"
],
[
31,
"客户-031",
"7833.75"
],
[
69,
"客户-069",
"7636.00"
],
[
59,
"客户-059",
"7491.50"
],
[
53,
"客户-053",
"7487.00"
],
[
20,
"客户-020",
"7482.75"
],
[
70,
"客户-070",
"7278.00"
],
[
38,
"客户-038",
"7042.00"
],
[
15,
"客户-015",
"6957.50"
],
[
56,
"客户-056",
"6878.50"
],
[
82,
"客户-082",
"6805.25"
],
[
74,
"客户-074",
"6759.50"
],
[
48,
"客户-048",
"6726.00"
],
[
36,
"客户-036",
"6578.00"
],
[
14,
"客户-014",
"6505.00"
],
[
61,
"客户-061",
"6371.75"
],
[
50,
"客户-050",
"6294.50"
],
[
78,
"客户-078",
"6170.25"
],
[
89,
"客户-089",
"6129.25"
],
[
5,
"客户-005",
"6070.25"
],
[
34,
"客户-034",
"5893.00"
],
[
32,
"客户-032",
"5828.75"
],
[
93,
"客户-093",
"5799.25"
],
[
71,
"客户-071",
"5791.25"
],
[
24,
"客户-024",
"5717.00"
],
[
106,
"客户-106",
"5662.25"
],
[
105,
"客户-105",
"5632.25"
],
[
60,
"客户-060",
"5597.50"
],
[
39,
"客户-039",
"5563.00"
],
[
92,
"客户-092",
"5520.50"
],
[
45,
"客户-045",
"5449.75"
],
[
41,
"客户-041",
"5355.50"
],
[
49,
"客户-049",
"5309.00"
],
[
52,
"客户-052",
"5189.00"
]
]
},
"run_id": 12,
"score": {
"ast_rules": [
{
"details": {
"actual": 3,
"required": 3
},
"id": "depth-3",
"kind": "query_depth",
"passed": true
}
],
"column_count": 5,
"column_names": 5,
"execution": 10,
"ordering": 10,
"protocol": 5,
"read_only_ast": 5,
"row_f1": 45,
"sql_capability": 15,
"total": 100
},
"stable_key": "above_average_customer_spend",
"started_at": "2026-08-29T16:40:26.471051",
"status": "completed",
"suite_content_hash": "0a4a18b4374f510f5eff18b06272c30c3375e1f082ae405adc8ead7dd9c81556",
"title": "高于平均累计消费客户",
"token_usage": {
"cache_write_input_tokens": 0,
"cached_input_tokens": 0,
"input_tokens": 19152,
"output_tokens": 289,
"reasoning_output_tokens": 0
},
"visible_summary": "返回累计已完成订单净消费高于有已完成订单客户平均累计消费的客户,并按消费额降序、客户 ID 升序排列。"
}