[ { "id": 1, "question": "平均每个员工在职多久?", "sql": "SELECT AVG(COALESCE(leave_date, CURRENT_DATE) - hire_date) AS average_tenure_days FROM employees", "rows": [ [ 886.2 ] ], "row_count": 1, "query_latency_s": 0.0036, "expected": [ [ 886.2 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 2, "question": "每个部门有多少在职员工?", "sql": "SELECT department, COUNT(*) AS active_count FROM employees WHERE leave_date IS NULL GROUP BY department", "rows": [ [ "人力资源部", 4 ], [ "市场部", 9 ], [ "研发部", 5 ], [ "财务部", 6 ], [ "销售部", 10 ] ], "row_count": 5, "query_latency_s": 0.0023, "expected": [ [ "研发部", 5 ], [ "销售部", 10 ], [ "人力资源部", 4 ], [ "市场部", 9 ], [ "财务部", 6 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 3, "question": "哪个部门员工平均级别最高?", "sql": "SELECT department\nFROM employees\nGROUP BY department\nORDER BY AVG(level) DESC\nLIMIT 1", "rows": [ [ "销售部" ] ], "row_count": 1, "query_latency_s": 0.0023, "expected": [ [ "销售部" ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 4, "question": "每个部门今年和去年各新入职多少人?", "sql": "SELECT department,\n COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM hire_date) = EXTRACT(YEAR FROM CURRENT_DATE)) AS this_year_count,\n COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM hire_date) = EXTRACT(YEAR FROM CURRENT_DATE) - 1) AS last_year_count\nFROM employees\nGROUP BY department\nHAVING this_year_count > 0 OR last_year_count > 0", "rows": [], "row_count": 0, "query_latency_s": 0.0047, "expected": [ [ "研发部", 1, 2 ], [ "销售部", 2, 1 ], [ "人力资源部", 2, 0 ], [ "市场部", 0, 4 ], [ "财务部", 0, 1 ] ], "passed": false, "comparison": "UndefinedColumn: column \"this_year_count\" does not exist\nLINE 6: HAVING this_year_count > 0 OR last_year_count > 0\n ^\n" }, { "id": 5, "question": "前年3月到去年5月,A部门平均工资是多少?", "sql": "SELECT AVG(s.salary)\nFROM employees e\nJOIN salaries s ON e.emp_id = s.emp_id\nWHERE e.department = '研发部'\n AND s.pay_date BETWEEN make_date(EXTRACT(YEAR FROM CURRENT_DATE)::INTEGER - 2, 3, 1)\n AND make_date(EXTRACT(YEAR FROM CURRENT_DATE)::INTEGER - 1, 5, 31)", "rows": [ [ 27695.833333333332 ] ], "row_count": 1, "query_latency_s": 0.0038, "expected": [ [ 27695.83 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 6, "question": "去年A部门和B部门平均工资哪个高?", "sql": "SELECT e.department, AVG(s.salary) AS average_salary\nFROM employees e\nINNER JOIN salaries s ON e.emp_id = s.emp_id\nWHERE e.department IN ('研发部', '销售部')\n AND s.pay_date >= date_trunc('year', CURRENT_DATE) - INTERVAL '1 year'\n AND s.pay_date < date_trunc('year', CURRENT_DATE)\nGROUP BY e.department", "rows": [ [ "研发部", 28569.444444444445 ], [ "销售部", 29481.55339805825 ] ], "row_count": 2, "query_latency_s": 0.0054, "expected": [ [ "研发部", 28569.44 ], [ "销售部", 29481.55 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 7, "question": "今年每个级别的员工平均工资是多少?", "sql": "SELECT e.level, AVG(s.salary) AS average_salary\nFROM employees e\nJOIN salaries s ON e.emp_id = s.emp_id\nWHERE EXTRACT(YEAR FROM s.pay_date) = EXTRACT(YEAR FROM CURRENT_DATE)\nGROUP BY e.level", "rows": [ [ 3, 23456.428571428572 ], [ 4, 26248.823529411766 ], [ 5, 34534.75 ], [ 6, 28461.363636363636 ], [ 7, 29935.0 ], [ 8, 32242.69230769231 ], [ 9, 34559.90566037736 ] ], "row_count": 7, "query_latency_s": 0.0016, "expected": [ [ 3, 23456.43 ], [ 8, 32242.69 ], [ 6, 28461.36 ], [ 4, 26248.82 ], [ 9, 34559.91 ], [ 5, 34534.75 ], [ 7, 29935 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 8, "question": "入职一年内、一到两年、两到三年的员工,最近一个月平均工资是多少?", "sql": "WITH latest_salaries AS (\n SELECT DISTINCT ON (emp_id) emp_id, salary\n FROM salaries\n ORDER BY emp_id, pay_date DESC\n)\nSELECT \n CASE \n WHEN (CURRENT_DATE - e.hire_date)::INTEGER < 365 THEN '入职一年内'\n WHEN (CURRENT_DATE - e.hire_date)::INTEGER BETWEEN 365 AND 729 THEN '一到两年'\n WHEN (CURRENT_DATE - e.hire_date)::INTEGER BETWEEN 730 AND 1094 THEN '两到三年'\n END AS bucket,\n AVG(ls.salary) AS average_latest_salary\nFROM employees e\nJOIN latest_salaries ls ON e.emp_id = ls.emp_id\nWHERE e.leave_date IS NULL\n AND (CURRENT_DATE - e.hire_date)::INTEGER <= 1094\nGROUP BY bucket", "rows": [ [ "一到两年", 27683.125 ], [ "两到三年", 31138.75 ], [ "入职一年内", 24053.75 ] ], "row_count": 3, "query_latency_s": 0.0018, "expected": [ [ "入职一年内", 24053.75 ], [ "一到两年", 27683.12 ], [ "两到三年", 31138.75 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 9, "question": "去年到今年涨薪幅度最大的10位员工是谁?", "sql": "WITH employee_salary_avg AS (\n SELECT \n emp_id,\n AVG(salary) FILTER (WHERE EXTRACT(YEAR FROM pay_date) = EXTRACT(YEAR FROM CURRENT_DATE) - 1) AS avg_prev_year,\n AVG(salary) FILTER (WHERE EXTRACT(YEAR FROM pay_date) = EXTRACT(YEAR FROM CURRENT_DATE)) AS avg_curr_year\n FROM salaries\n GROUP BY emp_id\n HAVING AVG(salary) FILTER (WHERE EXTRACT(YEAR FROM pay_date) = EXTRACT(YEAR FROM CURRENT_DATE) - 1) IS NOT NULL\n AND AVG(salary) FILTER (WHERE EXTRACT(YEAR FROM pay_date) = EXTRACT(YEAR FROM CURRENT_DATE)) IS NOT NULL\n)\nSELECT e.name, (esa.avg_curr_year - esa.avg_prev_year) AS raise_amount\nFROM employee_salary_avg esa\nJOIN employees e ON esa.emp_id = e.emp_id\nORDER BY raise_amount DESC\nLIMIT 10", "rows": [ [ "韩平", 12000.0 ], [ "韩伟", 2200.0 ], [ "吕芳", 2155.0 ], [ "金丽", 2110.0 ], [ "许华", 2065.0 ], [ "陶松", 1975.0 ], [ "周雪", 1930.0 ], [ "吴敏", 1885.0 ], [ "张霞", 1840.0 ], [ "赵平", 1795.0 ] ], "row_count": 10, "query_latency_s": 0.0016, "expected": [ [ "韩平", 12000 ], [ "韩伟", 2200 ], [ "吕芳", 2155 ], [ "金丽", 2110 ], [ "许华", 2065 ], [ "陶松", 1975 ], [ "周雪", 1930 ], [ "吴敏", 1885 ], [ "张霞", 1840 ], [ "赵平", 1795 ] ], "passed": true, "comparison": "independent Python reference matched" }, { "id": 10, "question": "有没有拖欠工资的情况(某个月还在职却没有发薪)?", "sql": "WITH employed_months AS (\n SELECT \n e.emp_id,\n generate_series(\n date_trunc('month', e.hire_date),\n date_trunc('month', COALESCE(e.leave_date, CURRENT_DATE)),\n interval '1 month'\n ) AS month\n FROM employees e\n)\nSELECT \n em.emp_id,\n to_char(em.month, 'YYYY-MM') AS month\nFROM employed_months em\nLEFT JOIN salaries s \n ON em.emp_id = s.emp_id \n AND em.month = date_trunc('month', s.pay_date)\nWHERE s.emp_id IS NULL", "rows": [ [ 17, "2026-01" ] ], "row_count": 1, "query_latency_s": 0.0156, "expected": [ [ 17, "2026-01" ] ], "passed": true, "comparison": "independent Python reference matched" } ]