Files
sqlbot_agent/util/q_and_a_dict.py
2025-10-15 10:14:35 +08:00

356 lines
19 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

question_and_answer = [
{"question": "综合处有多少员工,男女员工分别有多少",
"answer": '''
SELECT COUNT(*) AS "总人数",
SUM(CASE WHEN gender = '1' THEN 1 ELSE 0 END) AS "男员工数",
SUM(CASE WHEN gender = '2' THEN 1 ELSE 0 END) AS "女员工数"
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
WHERE p.internal_dept IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%综合处%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p.dr = 0
LIMIT 1000;
'''
},
{
"question": "外部单位是联通下面有哪些员工",
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
"external_unit" AS "外部单位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "external_unit" LIKE '%联通%' LIMIT 1000
'''
},
{
"question": "9月有多少哪些员工在休假",
"answer": '''
SELECT DISTINCT p."id" AS "id",
p."code" AS "工号",
p."name" AS "姓名",
p."internal_unit" AS "内部单位",
p."external_unit" AS "外部单位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p."code" = ps."person_id"
WHERE ps."status" = '1003'
AND ps."date_value" LIKE '2025-09%' LIMIT 1000
'''
},
{
"question": "博士和硕士分别有哪些员工",
"answer": '''
SELECT DISTINCT "name" AS "姓名",
"code" AS "工号",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位",
CASE
WHEN "highest_degree" = '1' THEN '学士学位'
WHEN "highest_degree" = '2' THEN '硕士学位'
WHEN "highest_degree" = '3' THEN '博士学位'
WHEN "highest_degree" = '4' THEN '' END AS "最高学位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "highest_degree" IN ('2', '3')
AND "dr" = '0'
ORDER BY "最高学位", "姓名" LIMIT 1000
'''
}, {
"question": "8月份在藏,超过10天的有哪些员工",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
p."name" AS "姓名",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit" END AS "单位",
COUNT(ps."id") AS "在藏天数"
FROM YJOA_APPSERVICE_DB."t_yj_person_status" ps
JOIN YJOA_APPSERVICE_DB."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code"
WHERE ps."is_in_tibet" = 1
AND ps."dr" = 0
AND p."dr" = 0
AND ps."date_value" LIKE '2025-08%'
GROUP BY p."code", p."name",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit" END
HAVING COUNT(ps."id") > 10
ORDER BY COUNT(ps."id") DESC LIMIT 1000
'''
},
{
"question": "张三 8月的考勤查询",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
p."name" AS "姓名",
p."internal_unit" AS "内部单位",
p."external_unit" AS "外部单位",
CASE
WHEN ps."status" = '1001' THEN '在岗'
WHEN ps."status" = '1002' THEN '出差'
WHEN ps."status" = '1003' THEN '休假,请假'
WHEN ps."status" = '1005' THEN '旷工'
WHEN ps."status" = '1006' THEN '迟到,早退'
WHEN ps."status" = '1007' THEN '休息日'
WHEN ps."status" = '4001' THEN 'am在岗pm缺勤'
WHEN ps."status" = '4002' THEN 'am缺勤pm在岗'
WHEN ps."status" = '6001' THEN 'am在岗pm早退'
WHEN ps."status" = '6002' THEN 'am迟到pm在岗'
WHEN ps."status" = '6004' THEN 'am迟到pm缺勤'
WHEN ps."status" = '4006' THEN 'am缺勤pm早退' END AS "人员状态",
ps."date_value" AS "日期"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code"
WHERE p."name" = '张三'
AND ps."date_value" LIKE '2025-08%'
AND ps."dr" = 0
ORDER BY ps."date_value" DESC LIMIT 1000
'''
},
{
"question": "负责智能体相关工作的是哪些员工",
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位",
"work_content" AS "工作内容"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "work_content" LIKE '%智能体%' LIMIT 1000
'''
}, {
"question": "在研发基地工作的有哪些员工",
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位",
"office_address" AS "办公地点"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE ("office_address" LIKE '%研发基地%' OR "office_city" LIKE '%研发基地%')
AND "dr" = '0' LIMIT 1000
'''
},
{
"question": "查询张三9月在林芝的打卡记录",
"answer": '''
SELECT a."person_name" AS "姓名",
a."person_id" AS "人员ID",
a."attendance_time" AS "考勤时间",
a."attendance_address" AS "考勤地址",
CASE
WHEN a."status" = 0 THEN '在岗'
WHEN a."status" = 1 THEN '出差'
WHEN a."status" = 2 THEN '休假' END AS "状态",
CASE
WHEN a."enter_or_exit" = 0 THEN ''
WHEN a."enter_or_exit" = 1
THEN '' END AS "进出类型",
CASE
WHEN b."region" = 1 THEN '北京'
WHEN b."region" = 2 THEN '成都'
WHEN b."region" = 3 THEN '秭归'
WHEN b."region" = 5 THEN '林芝' END AS "地区", AS "门禁点"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b
ON a."access_control_point" = b."ac_point"
WHERE a."person_name" = '张三'
AND b."region" = 5
AND a."attendance_time" >= '2025-09-01'
AND a."attendance_time"
< '2025-10-01'
AND a."dr" = 0
ORDER BY a."attendance_time" DESC LIMIT 1000
'''
}, {
"question": "查询张三9月份有多少天在岗",
"answer": '''
SELECT p."code" AS "工号",
p."name" AS "姓名",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit"
END AS "单位",
COUNT(CASE WHEN ps."status" = '1001' THEN 1 END) AS "在岗天数"
FROM YJOA_APPSERVICE_DB."t_yj_person_status" ps
JOIN YJOA_APPSERVICE_DB."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code"
WHERE p."name" = '张三'
AND ps."date_value" LIKE '2025-09%'
AND ps."dr" = 0
AND p."dr" = 0
GROUP BY p."code", p."name",
CASE
WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
ELSE p."external_unit"
END LIMIT 1000
'''
}, {
"question": "数信中心下有多少员工",
"answer": '''
select count(*)
from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
where internal_dept in (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%数信中心%'
CONNECT BY PRIOR "id" = "parentid"
)
'''
},
{
"question": "各个外部单位下的员工人数统计",
"answer": '''
sELECT "external_unit" AS "外部单位", COUNT(*) AS "员工人数"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "external_unit" IS NOT NULL
AND "external_unit" != ''
GROUP BY "external_unit"
ORDER BY "员工人数" DESC LIMIT 1000
'''
},
{
"question": "数信中心下各个处室分别有多少人",
"answer": '''
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
WHERE p.internal_dept IN (
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
START WITH "name" LIKE '%数信中心%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p.dr = 0
GROUP BY o.name
ORDER BY "人数" DESC
LIMIT 1000
'''
}, {
"question": "张三9月在林芝工作有多少天",
"answer": '''
SELECT count(distinct (TO_CHAR(a."attendance_time", 'yyyy-MM-dd'))) as count
FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b
ON a."access_control_point" = b."ac_point"
WHERE a."person_name" = '张三'
and b.region=5
AND a."attendance_time" >= '2025-09-01'
AND a."attendance_time"
< '2025-10-01'
AND a."dr" = 0 LIMIT 1000
'''
},
{
"question": "10月数信中心有哪些有员工请假",
"answer": '''
SELECT p."id" AS "id",
p."code" AS "工号",
p."name" AS "姓名",
p."internal_unit" AS "内部单位",
p."external_unit" AS "外部单位",
CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p."code" = ps."person_id"
WHERE ps."status" = '1003'
AND ps."date_value" LIKE '2025-10%'
and p.internal_dept in (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%数信中心%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p."dr" = 0
AND ps."dr" = 0 LIMIT 1000
'''
},
{
"question": "有多少个人迟到9月",
"answer": '''
SELECT COUNT(DISTINCT ps."person_id") AS "迟到人数"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
WHERE ps."status" = '1006'
AND ps."date_value" LIKE '2025-09%' LIMIT 1000
'''
},
{
"question": "员工年龄段分布图",
"answer": '''
SELECT
CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END AS "age_group",
COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
WHERE "dr" = 0
AND "birthday" IS NOT NULL
AND "birthday" != ''
AND internal_dept IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE "parentid" IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
)
)
GROUP BY
CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END
ORDER BY "age_group" ASC LIMIT 1000
'''
},{
"question": "查询综合处下面的员工以及他们的年龄",
"answer": '''
SELECT p."id" AS "员工ID",
p."name" AS "姓名",
o."name" AS "所属部门",
CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "出生年份",
2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT) AS "年龄",
CASE WHEN p."gender" = '1' THEN '' WHEN p."gender" = '2' THEN '' END AS "性别"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id"
WHERE p."dr" = 0
AND o."id" IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%综合处%'
CONNECT BY PRIOR "id" = "parentid")
AND p."birthday" IS NOT NULL
AND p."birthday" != ''
ORDER BY o."name" ASC, p."birthday" DESC
LIMIT 1000;
'''
},{
"question": "查询综合处下面的员工的平均年龄",
"answer": '''
SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id"
WHERE p."dr" = 0
AND o."id" IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%综合处%'
CONNECT BY PRIOR "id" = "parentid")
AND p."birthday" IS NOT NULL
AND p."birthday" != ''
LIMIT 1000;
'''
}
]