feat:修改ddql,增加qa问答

This commit is contained in:
雷雨
2025-09-28 16:44:58 +08:00
parent dc16bfaa8e
commit 6064710f4f
7 changed files with 396 additions and 641 deletions

View File

@@ -1,8 +1,8 @@
from service.cus_vanna_srevice import CustomVanna
from util import train_ddl
from util import q_and_a_dict
table_ddls = [
train_ddl.ddl_sql,train_ddl.attendance_ddl
train_ddl.person_ddl_sql,train_ddl.rule_ddl,train_ddl.user_status_ddl
]
list_documentions = [
train_ddl.train_document,
@@ -17,3 +17,6 @@ def add_ddl(vn: CustomVanna):
def add_documentation(vn: CustomVanna):
for doc in list_documentions:
vn.add_documentation(doc)
for d in q_and_a_dict.question_and_answer:
vn.add_question_sql(question=d['question'], sql=d['answer'])

206
util/q_and_a_dict.py Normal file
View File

@@ -0,0 +1,206 @@
question_and_answer = [
{"question": "考勤地点有哪些",
"answer": '''
SELECT DISTINCT CASE "region"
WHEN '1' THEN '北京'
WHEN '2' THEN '成都'
WHEN '3' THEN '秭归'
WHEN '4' THEN '拉萨'
WHEN '5' THEN '林芝' END AS "考勤地点"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance_rules"
WHERE "region" IS NOT NULL LIMIT 1000
'''
},
{"question": "成都的考勤规则是什么",
"answer": '''
SELECT "region" AS "region_code",
CASE
WHEN "region" = '1' THEN '北京'
WHEN "region" = '2' THEN '成都'
WHEN "region" = '3' THEN '秭归'
WHEN "region" = '4' THEN '拉萨'
WHEN "region" = '5' THEN '林芝' END AS "region_name",
"morning_check_time" AS "morning_check_time",
"afternoon_check_time" AS "afternoon_check_time",
"before_lunch_time" AS "before_lunch_time",
"after_lunch_time" AS "after_lunch_time"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance_rules"
WHERE "region" = '2' LIMIT 1000
'''
},
{"question": "所有员工男女各有多少人",
"answer": '''
SELECT CASE WHEN "gender" = '1' THEN '' WHEN "gender" = '2' THEN '' END AS "gender",
COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "dr" = 0
GROUP BY "gender"
ORDER BY "gender" ASC LIMIT 1000
'''
},
{
"question": "联通下面有哪些员工",
"answer": '''
SELECT "id" AS "id",
"code" AS "工号",
"name" AS "姓名",
"internal_unit" AS "内部单位",
"external_unit" AS "外部单位"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
WHERE "internal_unit" LIKE '%联通%'
OR "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": "联通的员工8月份有哪些迟到旷工的",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
p."name" AS "姓名",
p."internal_unit" AS "内部单位",
p."external_unit" AS "外部单位",
CASE
WHEN ps."status" = '1006' THEN '迟到,早退'
WHEN ps."status" = '1005' THEN '旷工' 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."internal_unit" LIKE '%联通%' OR p."external_unit" LIKE '%联通%')
AND ps."status" IN ('1005', '1006')
AND ps."date_value" LIKE '2025-08%'
AND ps."dr" = 0
ORDER BY ps."date_value" DESC 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": "8月份有多人迟到",
"answer": '''
SELECT count(distinct person_id)
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
WHERE ps."status" = '1006'
AND ps."date_value" LIKE '2025-08%'
AND ps."dr" = 0 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": "9月旷工迟到分别有多少人",
"answer": '''
SELECT CASE WHEN "status" = '1006' THEN '迟到' WHEN "status" = '1005' THEN '旷工' END AS "status_name",
COUNT(DISTINCT "person_id") AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status"
WHERE "status" IN ('1006', '1005')
AND "date_value" LIKE '2025-09%'
AND "dr" = 0
GROUP BY "status"
ORDER BY "status" 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
'''
}
]

View File

@@ -1,5 +1,5 @@
ddl_sql = """
[
person_ddl_sql = """
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_pr3rl2oj_yj_person_database",
@@ -17,7 +17,7 @@ ddl_sql = """
"5":"停用"
},
"role": "dimension",
"tags": ["状态信息"]
"tags": ["状态信息","枚举"]
},
{
"name": "gender",
@@ -28,7 +28,7 @@ ddl_sql = """
"2": ""
},
"role": "dimension",
"tags": ["基本信息", "人口属性"]
"tags": ["基本信息", "人口属性","枚举"]
},
{
"name": "id_card",
@@ -74,7 +74,7 @@ ddl_sql = """
"0": ""
},
"role": "dimension",
"tags": ["员工类型", "身份标识"]
"tags": ["员工类型", "身份标识","枚举"]
},
{
"name": "phone_number",
@@ -104,7 +104,7 @@ ddl_sql = """
"7":"来访人员",
},
"role": "dimension",
"tags": ["证件信息", "通行权限"]
"tags": ["证件信息", "通行权限","枚举"]
},
{
"name": "expire_time",
@@ -154,7 +154,7 @@ ddl_sql = """
"WQT":"其他外部人员"
},
"role": "dimension",
"tags": ["分类信息", "人员分类"]
"tags": ["分类信息", "人员分类","枚举"]
},
{
"name": "id",
@@ -163,13 +163,7 @@ ddl_sql = """
"role": "dimension",
"tags": ["主键", "ID标识"]
},
{
"name": "pubts",
"type": "DATETIME(39)",
"comment": "发布时间",
"role": "dimension",
"tags": ["时间信息", "系统字段"]
},
{
"name": "dr",
"type": "INT",
@@ -186,7 +180,7 @@ ddl_sql = """
"type": "VARCHAR(600)",
"comment": "编码",
"role": "dimension",
"tags": ["编码信息", "业务编码"]
"tags": ["编码信息", "工号"]
},
{
"name": "ytenant_id",
@@ -195,132 +189,7 @@ ddl_sql = """
"role": "dimension",
"tags": ["租户信息", "系统隔离"]
},
{
"name": "sourcegrand_id",
"type": "VARCHAR(108)",
"comment": "来源表id",
"role": "dimension",
"tags": ["数据来源", "关联信息"]
},
{
"name": "first_id",
"type": "VARCHAR(108)",
"comment": "来源单据主表id",
"role": "dimension",
"tags": ["数据来源", "关联信息"]
},
{
"name": "firstchild_id",
"type": "VARCHAR(108)",
"comment": "来源单据子表id",
"role": "dimension",
"tags": ["数据来源", "关联信息"]
},
{
"name": "firstbusiobj",
"type": "VARCHAR(108)",
"comment": "来源业务对象",
"role": "dimension",
"tags": ["业务对象", "数据来源"]
},
{
"name": "firstcode",
"type": "VARCHAR(600)",
"comment": "来源单据号",
"role": "dimension",
"tags": ["单据信息", "业务编码"]
},
{
"name": "verifystate",
"type": "INT",
"comment": "单据状态",
"role": "dimension",
"tags": ["审批状态", "业务流程"]
},
{
"name": "auditor",
"type": "VARCHAR(180)",
"comment": "终审审批人",
"role": "dimension",
"tags": ["审批信息", "操作人"]
},
{
"name": "audit_time",
"type": "DATETIME(39)",
"comment": "审批日期",
"role": "dimension",
"tags": ["时间信息", "审批流程"]
},
{
"name": "auditnote",
"type": "VARCHAR(600)",
"comment": "当前审批人",
"role": "dimension",
"tags": ["审批信息", "操作人"]
},
{
"name": "procinst_id",
"type": "VARCHAR(108)",
"comment": "流程实例ID",
"role": "dimension",
"tags": ["流程信息", "实例标识"]
},
{
"name": "bizflow_id",
"type": "VARCHAR(108)",
"comment": "业务流id",
"role": "dimension",
"tags": ["业务流程", "流标识"]
},
{
"name": "bizflowname",
"type": "VARCHAR(600)",
"comment": "流程名称",
"role": "dimension",
"tags": ["业务流程", "名称描述"]
},
{
"name": "source_id",
"type": "VARCHAR(108)",
"comment": "上游单据主表id",
"role": "dimension",
"tags": ["数据关联", "上游信息"]
},
{
"name": "sourcechild_id",
"type": "VARCHAR(108)",
"comment": "上游单据子表id",
"role": "dimension",
"tags": ["数据关联", "上游信息"]
},
{
"name": "bizflowinstance_id",
"type": "VARCHAR(108)",
"comment": "业务流实例id",
"role": "dimension",
"tags": ["业务流程", "实例标识"]
},
{
"name": "sourcebusiobj",
"type": "VARCHAR(108)",
"comment": "上游业务对象",
"role": "dimension",
"tags": ["业务对象", "上游信息"]
},
{
"name": "sourcecode",
"type": "VARCHAR(600)",
"comment": "上游单据号",
"role": "dimension",
"tags": ["单据信息", "业务编码"]
},
{
"name": "bizflow_makebillcode",
"type": "VARCHAR(600)",
"comment": "单据转换规则编码",
"role": "dimension",
"tags": ["业务流程", "规则编码"]
},
{
"name": "create_time",
"type": "DATETIME(39)",
@@ -335,27 +204,8 @@ ddl_sql = """
"role": "dimension",
"tags": ["时间信息", "系统记录"]
},
{
"name": "creator",
"type": "VARCHAR(180)",
"comment": "创建人",
"role": "dimension",
"tags": ["操作人信息", "系统记录"]
},
{
"name": "modifier",
"type": "VARCHAR(180)",
"comment": "修改人",
"role": "dimension",
"tags": ["操作人信息", "系统记录"]
},
{
"name": "worker_id",
"type": "VARCHAR(200)",
"comment": "工号",
"role": "dimension",
"tags": ["员工信息", "身份标识"]
},
{
"name": "to_dept",
"type": "VARCHAR(600)",
@@ -419,7 +269,7 @@ ddl_sql = """
"9":"博士 "
},
"role": "dimension",
"tags": ["教育信息", "学历背景"]
"tags": ["教育信息", "学历背景","枚举"]
},
{
"name": "highest_degree",
@@ -432,7 +282,7 @@ ddl_sql = """
"4":""
},
"role": "dimension",
"tags": ["教育信息", "学位背景"]
"tags": ["教育信息", "学位背景","枚举"]
},
{
"name": "graduate_school",
@@ -600,196 +450,26 @@ ddl_sql = """
"comment": "关联租户信息"
}
],
"examples": [
{
"question": "查询内部员工的数量",
"sql": "SELECT COUNT(*) as person_count FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE is_internal = '1' AND dr = 0"
},
{
"question": "按性别统计人员分布情况",
"sql": "SELECT gender, COUNT(*) as person_count FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE dr = 0 GROUP BY gender"
},
{
"question": "查询最近一个月新增的人员信息",
"sql": "SELECT * FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE create_time >= ADD_MONTHS(TRUNC(SYSDATE), -1) AND dr = 0"
}
],
"tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"],
},
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_attendance",
"table_comment": "人员考勤记录表,记录人员的考勤打卡信息",
"columns": [
{
"name": "person_name",
"type": "VARCHAR(50)",
"comment": "人员姓名",
"role": "dimension",
"tags": ["基本信息", "身份标识"]
},
{
"name": "id",
"type": "VARCHAR(200)",
"comment": "主键ID",
"role": "dimension",
"tags": ["主键", "ID标识"]
},
{
"name": "person_id",
"type": "VARCHAR(200)",
"comment": "人员ID",
"role": "dimension",
"tags": ["人员标识", "关联信息"]
},
{
"name": "phone_number",
"type": "VARCHAR(50)",
"comment": "手机号码",
"role": "dimension",
"tags": ["联系方式", "通讯信息"]
},
{
"name": "attendance_time",
"type": "DATETIME(39)",
"comment": "考勤时间",
"role": "dimension",
"tags": ["时间信息", "考勤记录"]
},
{
"name": "attendance_address",
"type": "VARCHAR(200)",
"comment": "考勤地点",
"role": "dimension",
"tags": ["位置信息", "考勤记录"]
},
{
"name": "status",
"type": "INT",
"comment": "状态",
"value":{
"1":"在岗",
"2":"出差",
"3":"休假"
},
"role": "dimension",
"tags": ["状态信息", "考勤状态"]
},
{
"name": "original_id",
"type": "VARCHAR(200)",
"comment": "原数据ID",
"role": "dimension",
"tags": ["数据来源", "原始标识"]
},
{
"name": "source",
"type": "VARCHAR(50)",
"comment": "数据来源",
"role": "dimension",
"tags": ["数据来源", "系统标识"]
},
{
"name": "dr",
"type": "INT",
"comment": "逻辑删除标志",
"role": "dimension",
"tags": ["系统状态", "数据状态"]
},
{
"name": "create_time",
"type": "DATETIME(39)",
"comment": "创建时间",
"role": "dimension",
"tags": ["时间信息", "系统记录"]
},
{
"name": "enter_or_exit",
"type": "INT",
"comment": "进出类型",
"value":{
"1":"",
"2":""
},
"role": "dimension",
"tags": ["考勤类型", "进出标识"]
},
{
"name": "access_control_point",
"type": "VARCHAR(50)",
"comment": "门禁点",
"role": "dimension",
"tags": ["位置信息", "门禁设备"]
},
{
"name": "bv_st",
"type": "VARCHAR(20)",
"comment": "上午打卡时间",
"role": "dimension",
"tags": ["时间信息", "业务时间"]
},
{
"name": "bv_et",
"type": "VARCHAR(20)",
"comment": "下午打卡时间",
"role": "dimension",
"tags": ["时间信息", "业务时间"]
},
{
"name": "bv_st_field",
"type": "VARCHAR(50)",
"comment": "午休前打卡时间",
"role": "dimension",
"tags": ["时间信息", "业务字段"]
},
{
"name": "bv_et_field",
"type": "VARCHAR(50)",
"comment": "午休后打卡时间",
"role": "dimension",
"tags": ["时间信息", "业务字段"]
},
{
"name": "bv_go_type",
"type": "VARCHAR(8)",
"comment": "打卡类型",
"role": "dimension",
"tags": ["业务类型", "分类信息"]
},
],
"relationships": [
{
"from": "person_id",
"to_table": "t_pr3rl2oj_yj_person_database",
"to_field": "id",
"type": "foreign_key",
"comment": "关联人员基本信息表"
}
],
"examples": [
{
"question": "查询今日考勤总人次",
"sql": "SELECT COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE TO_CHAR(attendance_time, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND dr = '0'"
},
{
"question": "按人员统计本月考勤次数",
"sql": "SELECT person_name, COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE TO_CHAR(attendance_time, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM') AND dr = '0' GROUP BY person_name, person_id"
},
{
"question": "查询最近一周的考勤记录",
"sql": "SELECT * FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE attendance_time >= SYSDATE - 7 AND dr = '0' ORDER BY attendance_time DESC"
},
{
"question": "统计各门禁点的考勤分布",
"sql": "SELECT access_control_point, COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE dr = '0' GROUP BY access_control_point"
}
],
"tags": ["考勤管理", "人员考勤", "门禁记录", "时间统计", "考勤分析"]
},
}
"""
train_document='''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息在values下注意相关字段枚举值的转换;
查询单位信息时内部单位和外部单位都需要查询用OR条件查询;
'''
rule_ddl='''
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_attendance_rules",
"table_comment": "人员考勤规则表,定义考勤时间规则和区域设置",
"table_comment": "人员考勤规则表,定义考勤时间规则,考勤地点设置",
"columns": [
{
"name": "id",
@@ -838,7 +518,7 @@ ddl_sql = """
"5": "林芝"
},
"role": "dimension",
"tags": ["区域设置", "地理信息"]
"tags": [ "考勤的位置","非办公区域不要混淆","枚举"]
},
],
"relationships": [
@@ -850,26 +530,12 @@ ddl_sql = """
"comment": "关联区域配置信息"
}
],
"examples": [
{
"question": "查询所有考勤规则列表",
"sql": "SELECT * FROM t_yj_person_attendance_rules"
},
{
"question": "统计各区域的考勤规则数量",
"sql": "SELECT region, COUNT(*) as rule_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules GROUP BY region"
},
{
"question": "查询特定区域的考勤时间设置",
"sql": "SELECT morning_check_time, afternoon_check_time, before_lunch_time, after_lunch_time FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules WHERE region = '北京'"
},
{
"question": "检查是否存在重复的考勤规则",
"sql": "SELECT region, morning_check_time, afternoon_check_time, COUNT(*) as rule_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules GROUP BY region, morning_check_time, afternoon_check_time HAVING COUNT(*) > 1"
}
],
"tags": ["考勤规则", "时间设置", "区域配置", "考勤管理", "规则定义"]
},
}
'''
user_status_ddl='''
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_status",
@@ -896,9 +562,9 @@ ddl_sql = """
"value":{
"1001":"在岗",
"1002":"出差",
"1003":"",
"1003":"休假,请",
"1005":"旷工",
"1006":"迟到早退",
"1006":"迟到,早退",
"1007":"休息日",
"4001":"am在岗pm缺勤",
"4002":"am缺勤pm在岗",
@@ -908,7 +574,7 @@ ddl_sql = """
"4006":"am缺勤pm早退"
},
"role": "dimension",
"tags": ["状态信息", "人员状态"]
"tags": ["状态信息", "人员状态","枚举","迟到早退都是:1006"]
},
{
"name": "date_value",
@@ -943,41 +609,12 @@ ddl_sql = """
{
"from": "person_id",
"to_table": "t_pr3rl2oj_yj_person_database",
"to_field": "id",
"to_field": "code",
"type": "foreign_key",
"comment": "关联人员基本信息表"
}
],
"examples": [
{
"question": "查询今日人员状态记录数量",
"sql": "SELECT COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE date_value = DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d') AND dr = 0"
},
{
"question": "统计各状态的人员分布",
"sql": "SELECT status, COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE dr = '0' GROUP BY status"
},
{
"question": "查询在西藏地区的人员数量",
"sql": "SELECT COUNT(DISTINCT person_id) as tibet_person_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE is_in_tibet = 1 AND dr = 0"
},
{
"question": "按日期统计人员状态记录",
"sql": "SELECT date_value, status, COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE dr = '0' GROUP BY date_value, status ORDER BY date_value DESC"
},
{
"question": "查询特定人员的状态历史记录",
"sql": "SELECT date_value, status, is_in_tibet FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE person_id = '123' AND dr = 0 ORDER BY date_value DESC"
}
],
"tags": ["人员状态", "状态记录", "地区管理", "西藏标识", "每日状态"]
}
]
"""
train_document='''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息:
'''
'''