Gold SQL Review & Fix — Walkthrough & Results

Tổng Quan

Đã review và sửa gold SQL cho 686 câu approved trong dataset Text2SQL bằng Gemini CLI (gemini-2.5-pro), với tiêu chuẩn đánh giá cụ thể và verify tự động trên DB TKB_refine.

Sau khi quá trình sửa chữa hoàn tất, chúng ta tiến hành phân tích độ chính xác của SQL do hệ thống tự sinh ra (generated_sql) so với Gold SQL đã được duyệt cuối cùng.


📊 Phân Tích Độ Chính Xác Của Generated SQL (So Với Gold SQL)

Báo cáo này cho thấy khả năng sinh SQL (Text2SQL) của hệ thống hiện tại so với đáp án chuẩn (Gold SQL) trên toàn bộ 686 câu đã được duyệt.

1. Tổng Quan Sự Lệch Chuẩn

Metric Count Tỉ Lệ
Tổng số câu 686 100%
gen_sql khớp hoàn toàn gold_sql 538 78.4%
gen_sql sai lệch (cần sửa bởi human/AI) 148 21.6%

[!TIP] Tỉ lệ khớp 78.4% cho thấy chất lượng sinh SQL của model hiện tại đang khá tốt, phần lớn các câu được approve không cần phải điều chỉnh lại gold_sql. Tuy nhiên, vẫn có gần 1/5 (21.6%) lượng dữ liệu mà model sinh ra sai lệch về cú pháp, schema, hoặc ngữ nghĩa so với đáp án chuẩn.

2. Chi Tiết Độ Chính Xác Theo Độ Khó (Difficulty)

Việc chia nhỏ số liệu theo độ khó (Difficulty) cho thấy rõ sự suy giảm độ chính xác khi câu hỏi phức tạp hơn:

Độ Khó Tổng Số Câu Khớp Chính Xác Tỉ Lệ Khớp Sai Lệch Tỉ Lệ Sai
EASY 277 253 91.3% 24 8.7%
MEDIUM 249 187 75.1% 62 24.9%
HARD 123 78 63.4% 45 36.6%
EXTRA_HARD 37 20 54.1% 17 45.9%

[!IMPORTANT] Nhận xét quan trọng từ phân tích độ khó: - EASY: Sinh SQL rất tốt (91.3% đúng chuẩn). Các query dạng SELECT, COUNT cơ bản trên 1 bảng hệ thống gần như sinh đúng hoàn toàn. - MEDIUM: Bắt đầu giảm xuống 75.1%. Các câu này thường dính đến JOIN từ 2-3 bảng hoặc điều kiện WHERE lọc thời gian, chữ chứa chuỗi. - HARD & EXTRA_HARD: Tỉ lệ đúng giảm mạnh xuống ngưỡng 50-60%. Ở các câu phức tạp (cần Subquery, CTE, nhiều GROUP BY, HAVING, hoặc tính toán tỷ lệ), model rất dễ sinh sai lệch so với logic chuẩn của người review. Đây là vùng cần tập trung refine prompt hoặc fine-tune nhất.


Các Loại Fix Phổ Biến (Khi gen_sql bị sai lệch)

  1. Sai schema prefix (phổ biến nhất): Sinh SQL dạng dbo.tbPhanNam trong khi thực tế bảng nằm ở schema TKB.tbPhanNam.
  2. Sai alias binding: Cột gọi là DTao.tbMonHoc.TenMonHoc khi bảng đã được alias AS T1 → dẫn tới lỗi could not be bound trong MSSQL.
  3. LIMIT → TOP: Model đôi khi sinh LIMIT 10 (như MySQL/PostgreSQL) thay vì SELECT TOP 10 (chuẩn MSSQL).
  4. Thiếu GROUP BY: Các cột non-aggregated SELECT chung với hàm COUNT/SUM nhưng quên không đưa vào mệnh đề GROUP BY.
  5. Sai JOIN logic: JOIN sai bảng hoặc sai điều kiện ON, thường xảy ra ở mức độ HARD/EXTRA_HARD.

Files Generated

File Mô tả
final_report.json Full report raw dữ liệu với all 686 kết quả
gen_sql_accuracy_report.md Báo cáo Markdown tổng hợp theo difficulty
db_schema.txt DB schema (19 tables, 126 columns) dùng để review
gemini_review_results/batch_*_raw.txt Raw Gemini outputs per batch