sql_validation_20250623_220723_summary.txt 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. SQL验证报告
  2. ==================================================
  3. 输入文件: output\qs_highway_db_20250623_192120_pair.json
  4. 验证时间: 2025-06-23T22:07:23.116709
  5. 验证耗时: 0.65秒
  6. 验证结果摘要:
  7. 总SQL数量: 50
  8. 有效SQL: 45
  9. 无效SQL: 5
  10. 成功率: 90.00%
  11. 平均耗时: 0.057秒
  12. 重试次数: 0
  13. SQL修复统计:
  14. 尝试修复: 0
  15. 修复成功: 0
  16. 修复失败: 0
  17. 原始文件修改统计:
  18. 修改的SQL: 0
  19. 删除的无效项: 0
  20. 修改失败: 0
  21. 错误详情(共5个):
  22. ==================================================
  23. 1. 问题: 车辆数量与订单量相关性分析(关联车流数据)
  24. 错误: 函数 round(double precision, integer) 不存在
  25. HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.
  26. LLM修复尝试: 未尝试
  27. 完整SQL:
  28. SELECT a.oper_date, a.order_sum AS 订单数量, b.customer_count AS 车辆数量, ROUND(CORR(a.order_sum, b.customer_count),2) AS 相关系数 FROM (SELECT oper_date, SUM(order_sum) AS order_sum FROM bss_business_day_data WHERE delete_ts IS NULL GROUP BY oper_date) a JOIN (SELECT count_date, SUM(customer_count) AS customer_count FROM bss_car_day_count GROUP BY count_date) b ON a.oper_date = b.count_date GROUP BY a.oper_date;
  29. ----------------------------------------
  30. 2. 问题: 预测未来一周各服务区基于历史车流与消费数据的消费趋势(使用线性回归)
  31. 错误: 函数 pg_catalog.extract(unknown, integer) 不存在
  32. HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.
  33. LLM修复尝试: 未尝试
  34. 完整SQL:
  35. SELECT service_area_id AS 服务区ID, date, REGR_INTERCEPT(pay_sum, day_num) + REGR_SLOPE(pay_sum, day_num) * EXTRACT(EPOCH FROM date)/86400 AS 预测消费 FROM (SELECT c.service_area_id, b.oper_date AS date, EXTRACT(EPOCH FROM b.oper_date - CURRENT_DATE + 7) AS day_num, b.pay_sum FROM bss_car_day_count c JOIN bss_service_area_mapper m ON c.service_area_id = m.service_area_id AND m.delete_ts IS NULL JOIN bss_business_day_data b ON m.service_name = b.service_name AND c.count_date = b.oper_date WHERE b.oper_date BETWEEN CURRENT_DATE - 30 AND CURRENT_DATE AND c.delete_ts IS NULL AND b.delete_ts IS NULL) sub GROUP BY service_area_id, date;
  36. ----------------------------------------
  37. 3. 问题: 分析不同档口类型(餐饮/零售/其他)的消费转化率与车流密度(车流量/营业面积)的关系
  38. 错误: 字段 b.branch_type 不存在
  39. HINT: 也许您想要引用列"t.branch_type"。
  40. LLM修复尝试: 未尝试
  41. 完整SQL:
  42. SELECT b.branch_type AS 档口类型, c.customer_count / NULLIF(s.area,0) AS 车流密度, SUM(b.order_sum)/SUM(c.customer_count) AS 转化率 FROM bss_business_day_data b JOIN (SELECT branch_name, CASE WHEN branch_name LIKE '%餐饮%' THEN '餐饮' WHEN branch_name LIKE '%零售%' THEN '零售' ELSE '其他' END AS branch_type FROM bss_business_day_data GROUP BY branch_name) t ON b.branch_name = t.branch_name JOIN bss_service_area_mapper m ON b.service_name = m.service_name AND m.delete_ts IS NULL JOIN bss_car_day_count c ON m.service_area_id = c.service_area_id AND b.oper_date = c.count_date JOIN (SELECT id, (RANDOM()*1000+500)::INT AS area FROM bss_service_area) s ON m.service_area_id = s.id WHERE b.delete_ts IS NULL AND c.delete_ts IS NULL GROUP BY ROLLUP(branch_type);
  43. ----------------------------------------
  44. 4. 问题: 各区域管理公司单位能耗产出对比(需结合能耗表)
  45. 错误: 对于表"e",丢失FROM子句项
  46. LLM修复尝试: 未尝试
  47. 完整SQL:
  48. SELECT c.company_name AS 公司名称,
  49. ROUND(SUM(b.pay_sum)/SUM(e.energy_consumption), 2) AS 单位能耗产出
  50. FROM bss_company c
  51. JOIN bss_service_area sa ON c.id = sa.company_id
  52. JOIN bss_business_day_data b ON sa.service_area_no = b.service_no
  53. -- 假设存在能耗表 energy_consumption_table e
  54. -- JOIN energy_consumption_table e ON sa.id = e.service_area_id
  55. WHERE b.oper_date BETWEEN '2023-01-01' AND '2023-03-31'
  56. GROUP BY c.company_name
  57. ORDER BY 单位能耗产出 DESC;
  58. ----------------------------------------
  59. 5. 问题: 各服务区不同数据源支付总额差异分析
  60. 错误: 字段关联 "service_name" 是不明确的
  61. LLM修复尝试: 未尝试
  62. 完整SQL:
  63. SELECT service_name AS 服务区名称, source_type AS 数据源类型, SUM(pay_sum) AS 支付总额 FROM bss_business_day_data bdd JOIN bss_service_area_mapper sa ON bdd.service_no = sa.service_no WHERE bdd.delete_ts IS NULL GROUP BY service_name, source_type HAVING SUM(pay_sum) > 10000 ORDER BY 支付总额 DESC LIMIT 20;
  64. ----------------------------------------