# 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](file:///root/repo/IntelliReport/app/server/gemini_review_results/final_report.json) | Full report raw dữ liệu với all 686 kết quả |
| [gen_sql_accuracy_report.md](file:///root/repo/IntelliReport/app/server/gemini_review_results/gen_sql_accuracy_report.md) | Báo cáo Markdown tổng hợp theo difficulty |
| [db_schema.txt](file:///root/repo/IntelliReport/app/server/db_schema.txt) | DB schema (19 tables, 126 columns) dùng để review |
| `gemini_review_results/batch_*_raw.txt` | Raw Gemini outputs per batch |
