{
  "version": 1,
  "source_report": "/Users/joungminko/claude-workspace/oci-data-flow-aidp/docs/reports/sgmp-select-ai-full-qa-term-dict-final-v2-20260721.json",
  "source_redmine": 690,
  "generated_at": "2026-07-21T14:44:50+09:00",
  "sample_base_date": "2026-07-15",
  "sample_game_id": "STOVE_CHAOSZERO",
  "scenarios": [
    {
      "case_id": "STD-01",
      "title": "%GAME% 테이블명 바인딩",
      "category": "STANDARD",
      "scenario_no": 1,
      "question": "버블리즈 유저 마스터 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 4,
        "scenario": "표준 테이블 사용\n%GAME% 변수 → 테이블명 바인딩",
        "natural_question": "버블리즈 유저 마스터 조회해줘",
        "sample_query": "SELECT *\n  FROM DW.BBZ_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)",
        "note": "게임명 & 테이블 PREPIX 매핑 테이블 생성 필요\n기본 조회시 row 제한 프롬프트 적용 필요\n파티션 기본 조회 조건 추가"
      },
      "expected_focus": "BBZ_COMN_USER_MST는 현재 SGMP_POC object list에 없으므로 임의 테이블 생성 없이 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  a.\"GAME_ID\",\n  a.\"GAME_NM\",\n  a.\"GAME_PREFIX\"\nFROM\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\nWHERE\n  a.\"USE_YN\" = 'Y'\n  AND UPPER(a.\"GAME_NM\") LIKE UPPER('%버블리즈%')\n  OR a.\"USE_YN\" = 'Y'\n  AND UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%버블리즈%')\n  OR a.\"USE_YN\" = 'Y'\n  AND UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%버블리즈%')\n  OR a.\"USE_YN\" = 'Y'\n  AND UPPER(a.\"GAME_ID\") LIKE UPPER('%버블리즈%')",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 50212
      }
    },
    {
      "case_id": "STD-02",
      "title": "한글 게임명 AU",
      "category": "STANDARD",
      "scenario_no": 2,
      "question": "버블리즈 AU 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 5,
        "scenario": "표준 테이블 사용\n%게임% 한글 변수 인식",
        "natural_question": "버블리즈 AU 알려줘",
        "sample_query": "SELECT COUNT(1)\n  FROM DW.BBZ_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND EXPT_USER_YN = 'N'\n   AND AU_FLAG = 1",
        "note": "AU 라고만 하면 표준 AU를 제공할 수 있도록 프롬프트 제공\n유저 기준 사용시 EXPT_USER_YN = 'N' 조건 사용할 수 있도록 프롬프트 제공\n날짜 제공하지 않을시 기본적으로 기준일(어제) 기준으로 제공할 수 있도록 프롬프트 제공\n날짜 변수를 어떻게 받아오는지 확인 필요"
      },
      "expected_focus": "버블리즈는 현재 object list에 없으므로 임의 game_id/table 사용 없이 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = (SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\")\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%버블리즈%')\n      )\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "AU_COUNT=0",
        "execution_output": "AU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 48811
      }
    },
    {
      "case_id": "STD-03",
      "title": "게임명 미입력",
      "category": "STANDARD",
      "scenario_no": 3,
      "question": "공통유저마스터에서 유저 수 알려줘. 게임명은 언급하지 않았어.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 6,
        "scenario": "표준 테이블 사용\n변수 미입력 시 처리",
        "natural_question": "공통유저마스터에서 유저 수 알려줘\n(게임명 미언급)",
        "sample_query": "별도 샘플 쿼리 없음",
        "note": "TEXT2SQL 공간 생성에 따라 다름\n- 전체 게임 조회 가능할 시: 어떤 게임 확인이 필요한지 역질문 필요\n- 특정 게임만 조회 가능할 시: 해당 게임에 대한 답변 필요"
      },
      "expected_focus": "게임 특정이 불가능하면 임의 게임 선택 없이 clarification 또는 제한적 SQL이어야 한다.",
      "support_level": "PARTIAL",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "USER_COUNT=10",
        "execution_output": "USER_COUNT\n----------\n        10",
        "execution_status": "PASS",
        "judgment_status": "WARN",
        "judgment_reason": "Required SQL terms are present.\nPartial scenario contains unsupported scope; generated SQL should be reviewed before demo use.",
        "duration_ms": 47670
      }
    },
    {
      "case_id": "STD-04",
      "title": "영문 게임명 BUBBLYZ",
      "category": "STANDARD",
      "scenario_no": 4,
      "question": "BUBBLYZ 유저 마스터 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 7,
        "scenario": "한글/영문 게임명 혼용",
        "natural_question": "BUBBLYZ 유저 마스터 조회해줘",
        "sample_query": "SELECT *\n  FROM DW.BBZ_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)",
        "note": ""
      },
      "expected_focus": "BUBBLYZ는 현재 object list에 없으므로 임의 테이블 생성 없이 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  a.\"GAME_ID\",\n  a.\"GAME_NM\",\n  a.\"GAME_PREFIX\"\nFROM\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\nWHERE\n  a.\"USE_YN\" = 'Y'\n  AND (\n    UPPER(a.\"GAME_NM\") LIKE UPPER('%BUBBLYZ%')\n    OR UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%BUBBLYZ%')\n    OR UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%BUBBLYZ%')\n    OR UPPER(a.\"GAME_ID\") LIKE UPPER('%BUBBLYZ%')\n  )",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 48491
      }
    },
    {
      "case_id": "STD-05",
      "title": "게임 약어/FULL NAME",
      "category": "STANDARD",
      "scenario_no": 5,
      "question": "로나 유저 마스터 조회해줘. 그리고 카오스 제로 나이트메어 유저 마스터도 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 8,
        "scenario": "게임 약어 / FULL NAME 사용",
        "natural_question": "1. 로나 유저 마스터 조회해줘\n2. 카오스 제로 나이트메어 유저 마스터 조회해줘",
        "sample_query": "SELECT *\n  FROM DW.LORDNINE_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n\nSELECT *\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)",
        "note": ""
      },
      "expected_focus": "로드나인은 미지원, 카오스 제로 나이트메어는 CZN_COMN_USER_MST로 처리 가능하다.",
      "support_level": "PARTIAL",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  a.\"GUID\",\n  a.\"AUID\",\n  a.\"BASE_DT\",\n  a.\"SNAPSHOT_DT\",\n  a.\"STD_USER_YN\",\n  a.\"EXPT_USER_YN\",\n  a.\"AU_FLAG\",\n  a.\"NRU_FLAG\",\n  a.\"RU_FLAG\",\n  a.\"ACM_CONN_DCNT\",\n  a.\"CONTINUE_CONN_DCNT\",\n  a.\"CONTINUE_NON_CONN_DCNT\",\n  a.\"ACM_PAYMT_AMT\",\n  a.\"TDAY_PAYMT_AMT\",\n  a.\"TDAY_PLAY_TIME\",\n  a.\"MAX_LEVEL\",\n  a.\"LAST_CONN_DT\",\n  a.\"LAST_CONN_COUNTRY_CD\",\n  a.\"USER_TYPE_ITG_CD\"\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" a\nWHERE\n  EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%로나%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%로나%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%로나%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%로나%')\n      )\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )\nUNION ALL\nSELECT\n  b.\"GUID\",\n  b.\"AUID\",\n  b.\"BASE_DT\",\n  b.\"SNAPSHOT_DT\",\n  b.\"STD_USER_YN\",\n  b.\"EXPT_USER_YN\",\n  b.\"AU_FLAG\",\n  b.\"NRU_FLAG\",\n  b.\"RU_FLAG\",\n  b.\"ACM_CONN_DCNT\",\n  b.\"CONTINUE_CONN_DCNT\",\n  b.\"CONTINUE_NON_CONN_DCNT\",\n  b.\"ACM_PAYMT_AMT\",\n  b.\"TDAY_PAYMT_AMT\",\n  b.\"TDAY_PLAY_TIME\",\n  b.\"MAX_LEVEL\",\n  b.\"LAST_CONN_DT\",\n  b.\"LAST_CONN_COUNTRY_CD\",\n  b.\"USER_TYPE_ITG_CD\"\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" b\nWHERE\n  EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%카오스 제로 나이트메어%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카오스 제로 나이트메어%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%카오스 제로 나이트메어%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%카오스 제로 나이트메어%')\n      )\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "GUID=AUID",
        "execution_output": "GUID\[encoded data, 11996 characters]\n...[historical output truncated]",
        "execution_status": "PASS",
        "judgment_status": "WARN",
        "judgment_reason": "Required SQL terms are present.\nPartial scenario contains unsupported scope; generated SQL should be reviewed before demo use.",
        "duration_ms": 62484
      }
    },
    {
      "case_id": "STD-06",
      "title": "복수 게임 AU",
      "category": "STANDARD",
      "scenario_no": 6,
      "question": "로드나인이랑 카제나의 2026년 7월 15일 AU를 각각 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 9,
        "scenario": "복수 게임 변수 동시 처리",
        "natural_question": "로드나인이랑 카제나 AU 각각 알려줘",
        "sample_query": "SELECT COUNT(1)\n FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'\n\nSELECT COUNT(1)\n  FROM DW.LORDNINE_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "로드나인은 미지원, 카제나는 CZN_COMN_USER_MST AU_FLAG 집계 가능하다.",
      "support_level": "PARTIAL",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  g1.\"GAME_NM\" AS GAME_NAME_1,\n  COUNT(DISTINCT u1.\"GUID\") AS AU_COUNT_1,\n  g2.\"GAME_NM\" AS GAME_NAME_2,\n  COUNT(DISTINCT u2.\"GUID\") AS AU_COUNT_2\nFROM\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g1,\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u1,\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g2,\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u2\nWHERE\n  g1.\"USE_YN\" = 'Y'\n  AND UPPER(g1.\"GAME_NM\") LIKE UPPER('%로드나인%')\n  AND u1.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u1.\"AU_FLAG\" = 1\n  AND u1.\"EXPT_USER_YN\" = 'N'\n  AND g2.\"USE_YN\" = 'Y'\n  AND UPPER(g2.\"GAME_NM\") LIKE UPPER('%카제나%')\n  AND u2.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u2.\"AU_FLAG\" = 1\n  AND u2.\"EXPT_USER_YN\" = 'N'\nGROUP BY\n  g1.\"GAME_NM\",\n  g2.\"GAME_NM\"",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "WARN",
        "judgment_reason": "Required SQL terms are present.\nPartial scenario contains unsupported scope; generated SQL should be reviewed before demo use.",
        "duration_ms": 49075
      }
    },
    {
      "case_id": "STD-07",
      "title": "존재하지 않는 게임명",
      "category": "STANDARD",
      "scenario_no": 7,
      "question": "테스트게임 유저마스터 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 10,
        "scenario": "존재하지 않는 게임명 입력",
        "natural_question": "테스트게임 유저마스터 조회해줘",
        "sample_query": "별도 샘플 쿼리 없음",
        "note": ""
      },
      "expected_focus": "미등록 게임명은 임의 테이블명 생성 없이 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  a.\"GAME_ID\",\n  a.\"GAME_NM\",\n  a.\"GAME_PREFIX\"\nFROM\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\nWHERE\n  a.\"USE_YN\" = 'Y'\n  AND UPPER(a.\"GAME_NM\") LIKE UPPER('%테스트게임%')\n  OR (\n    a.\"USE_YN\" = 'Y'\n    AND UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%테스트게임%')\n  )\n  OR (\n    a.\"USE_YN\" = 'Y'\n    AND UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%테스트게임%')\n  )",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 48526
      }
    },
    {
      "case_id": "STD-08",
      "title": "로드나인/로드나인 아시아 구분",
      "category": "STANDARD",
      "scenario_no": 8,
      "question": "로드나인 유저 마스터 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 11,
        "scenario": "로드나인 & 로드나인 아시아 잘 구분할 수 있는지",
        "natural_question": "로드나인 유저 마스터 조회해줘",
        "sample_query": "SELECT *\n  FROM DW.LORDNINE_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)",
        "note": ""
      },
      "expected_focus": "로드나인 계열 테이블은 현재 object list에 없으므로 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  g.GUID,\n  g.AUID,\n  g.BASE_DT,\n  g.STD_USER_YN,\n  g.EXPT_USER_YN,\n  g.AU_FLAG,\n  g.NRU_FLAG,\n  g.RU_FLAG,\n  g.USER_TYPE_ITG_CD,\n  g.ACM_CONN_DCNT,\n  g.CONTINUE_CONN_DCNT,\n  g.CONTINUE_NON_CONN_DCNT,\n  g.ACM_PAYMT_AMT,\n  g.TDAY_PAYMT_AMT,\n  g.TDAY_PLAY_TIME,\n  g.MAX_LEVEL,\n  g.LAST_CONN_DT,\n  g.LAST_CONN_COUNTRY_CD,\n  g.LAST_CONN_OS_ITG_CD,\n  g.LAST_CONN_MARKET_ITG_CD,\n  g.FIRST_CONN_DTM,\n  g.RAW_NRU_DT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" g\nWHERE\n  EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\n    WHERE a.USE_YN = 'Y'\n      AND a.GAME_PREFIX = 'CZN'\n      AND (\n        UPPER(a.GAME_NM) LIKE UPPER('%로드나인%')\n        OR UPPER(a.GAME_ALIAS_NM) LIKE UPPER('%로드나인%')\n      )\n  )\nORDER BY\n  g.BASE_DT DESC,\n  g.GUID",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 56954
      }
    },
    {
      "case_id": "STD-09",
      "title": "버블리즈 매출",
      "category": "STANDARD",
      "scenario_no": 9,
      "question": "2026년 7월 15일 버블리즈 매출 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 13,
        "scenario": "한글 게임명 → game_id 매핑",
        "natural_question": "버블리즈 어제 매출 알려줘",
        "sample_query": "SELECT SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_BUBBLYZ'\n   AND EXPT_USER_YN = 'N'",
        "note": "게임 조건 기준 프롬프트 추가 필요\n매출 기준 사용시 EXPT_USER_YN = 'N' 조건 사용할 수 있도록 프롬프트 제공"
      },
      "expected_focus": "버블리즈 game_id가 현재 샘플 데이터에 없으므로 임의 game_id 생성 없이 거절/0건 처리해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'\n  AND s.\"GAME_ID\" IN (\n    SELECT g.\"GAME_ID\"\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE\n      g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%버블리즈%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%버블리즈%')\n      )\n  )",
        "answer_text": "SALES_AMOUNT=------------",
        "execution_output": "SALES_AMOUNT\n------------",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 48233
      }
    },
    {
      "case_id": "STD-10",
      "title": "Bubblyz 매출",
      "category": "STANDARD",
      "scenario_no": 10,
      "question": "2026년 7월 15일 Bubblyz 매출 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 14,
        "scenario": "영문 게임명 → game_id 매핑",
        "natural_question": "Bubblyz 어제 매출 알려줘",
        "sample_query": "SELECT SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_BUBBLYZ'\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "Bubblyz game_id가 현재 샘플 데이터에 없으므로 임의 game_id 생성 없이 거절/0건 처리해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'\n  AND s.\"GAME_ID\" = (\n    SELECT g.\"GAME_ID\"\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE\n      g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%Bubblyz%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%Bubblyz%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%Bubblyz%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%Bubblyz%')\n      )\n  )",
        "answer_text": "SALES_AMOUNT=------------",
        "execution_output": "SALES_AMOUNT\n------------",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 49464
      }
    },
    {
      "case_id": "STD-11",
      "title": "Bubblyz와 카제나 매출 비교",
      "category": "STANDARD",
      "scenario_no": 11,
      "question": "2026년 7월 15일 Bubblyz랑 카제나 매출 비교해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 15,
        "scenario": "한글/영문 혼용 입력",
        "natural_question": "Bubblyz랑 카제나 매출 비교해줘",
        "sample_query": "SELECT GAME_ID, SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID IN ('STOVE_BUBBLYZ', 'STOVE_CHAOSZERO')\n   AND EXPT_USER_YN = 'N'\n GROUP BY GAME_ID",
        "note": ""
      },
      "expected_focus": "Bubblyz는 미지원, 카제나는 COMN_SALES_TXN/STOVE_CHAOSZERO 집계 가능하다.",
      "support_level": "PARTIAL",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_GAME_ALIAS_BAS",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  gab1.\"GAME_NM\" AS GAME_NAME_1,\n  SUM(CASE WHEN st1.\"BASE_DT\" = TO_DATE('20260715', 'YYYYMMDD') THEN CAST(st1.\"PAYMT_AMT\" AS NUMBER) ELSE 0 END) AS SALES_AMT_1,\n  gab2.\"GAME_NM\" AS GAME_NAME_2,\n  SUM(CASE WHEN st2.\"BASE_DT\" = TO_DATE('20260715', 'YYYYMMDD') THEN CAST(st2.\"PAYMT_AMT\" AS NUMBER) ELSE 0 END) AS SALES_AMT_2\nFROM\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" gab1,\n  \"SGMP_POC\".\"COMN_SALES_TXN\" st1,\n  \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" gab2,\n  \"SGMP_POC\".\"COMN_SALES_TXN\" st2\nWHERE\n  gab1.\"USE_YN\" = 'Y'\n  AND (UPPER(gab1.\"GAME_NM\") LIKE UPPER('%Bubblyz%')\n       OR UPPER(gab1.\"GAME_ALIAS_NM\") LIKE UPPER('%Bubblyz%')\n       OR UPPER(gab1.\"GAME_PREFIX\") LIKE UPPER('%Bubblyz%')\n       OR UPPER(gab1.\"GAME_ID\") LIKE UPPER('%Bubblyz%'))\n  AND st1.\"GAME_ID\" = gab1.\"GAME_ID\"\n  AND st1.\"BASE_DT\" = TO_DATE('20260715', 'YYYYMMDD')\n  AND st1.\"EXPT_USER_YN\" = 'N'\n  AND gab2.\"USE_YN\" = 'Y'\n  AND (UPPER(gab2.\"GAME_NM\") LIKE UPPER('%카제나%')\n       OR UPPER(gab2.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n       OR UPPER(gab2.\"GAME_PREFIX\") LIKE UPPER('%카제나%')\n       OR UPPER(gab2.\"GAME_ID\") LIKE UPPER('%카제나%'))\n  AND st2.\"GAME_ID\" = gab2.\"GAME_ID\"\n  AND st2.\"BASE_DT\" = TO_DATE('20260715', 'YYYYMMDD')\n  AND st2.\"EXPT_USER_YN\" = 'N'\nGROUP BY\n  gab1.\"GAME_NM\",\n  gab2.\"GAME_NM\"",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "WARN",
        "judgment_reason": "Required SQL terms are present.\nPartial scenario contains unsupported scope; generated SQL should be reviewed before demo use.",
        "duration_ms": 51879
      }
    },
    {
      "case_id": "STD-12",
      "title": "약어/FULL NAME 매출",
      "category": "STANDARD",
      "scenario_no": 12,
      "question": "2026년 7월 15일 로나 유저 매출과 카오스 제로 나이트메어 매출을 확인해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 16,
        "scenario": "게임 약어 / FULL NAME 사용",
        "natural_question": "1. 로나 유저 어제 매출 확인해줘\n2. 카오스 제로 나이트메어 어제 매출 확인해줘",
        "sample_query": "SELECT 'STOVE_LORD' AS GAME_ID, SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_LORD'\n   AND EXPT_USER_YN = 'N'\nUNION ALL\nSELECT 'STOVE_CHAOSZERO' AS GAME_ID, SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_CHAOSZERO'\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "로나는 미지원, 카오스 제로 나이트메어는 COMN_SALES_TXN/STOVE_CHAOSZERO 집계 가능하다.",
      "support_level": "PARTIAL",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_GAME_ALIAS_BAS",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "",
        "answer_text": "",
        "execution_output": "Sorry, unfortunately a valid SELECT statement could not be generated for your natural language prompt with the restriction of enforcing the use of object list. Here is some more information to help you further:                                             \n                                                                                                                                                                                                                                                               \n```sql                                                                                                                                                                                                                                                         \nSELECT                                                                                                                                                                                                                                                         \n  g1.\"GAME_NM\" AS GAME_NAME_1,                                                                                                                                                                                                                                 \n  SUM(s1.\"PAYMT_AMT\") AS SALES_AMOUNT_1,                                                                                                                                                                                                                       \n  g2.\"GAME_NM\" AS GAME_NAME_2,                                                                                                                                                                                                                                 \n  s2_subq.\"SALES_AMOUNT_2\"                                                                                                                                                                                                                                     \nFROM                                                                                                                                                                                                                                                           \n  \"SGMP_POC\".\"COMN_SALES_TXN\" s1                                                                                                                                                                                                                               \n  INNER JOIN \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g1                                                                                                                                                                                                               \n    ON s1.\"GAME_ID\" = g1.\"GAME_ID\"                                                                                                                                                                                                                             \n    AND g1.\"USE_YN\" = 'Y'                                                                                                                                                                                                                                      \n    AND (UPPER(g1.\"GAME_NM\") LIKE UPPER('%로나%')                                                                                                                                                                                                                \n         OR UPPER(g1.\"GAME_ALIAS_NM\") LIKE UPPER('%로나%')                                                                                                                                                                                                       \n         OR UPPER(g1.\"GAME_PREFIX\") LIKE UPPER('%로나%'))                                                                                                                                                                                                        \n  CROSS JOIN (                                                                                                                                                                                                                                                 \n    SELECT                                                                                                                                                                                                                                                     \n      g.\"GAME_NM\",                                                                                                                                                                                                                                             \n      SUM(s.\"PAYMT_AMT\") AS SALES_AMOUNT_2                                                                                                                                                                                                                     \n    FROM                                                                                                                                                                                                                                                       \n      \"SGMP_POC\".\"COMN_SALES_TXN\" s                                                                                                                                                                                                                            \n      INNER JOIN \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g                                                                                                                                                                                                            \n        ON s.\"GAME_ID\" = g.\"GAME_ID\"                                                                                                                                                                                                                           \n        AND g.\"USE_YN\" = 'Y'                                                                                                                                                                                                                                   \n        AND (UPPER(g.\"GAME_NM\") LIKE UPPER('%카오스 제로 나이트메어%')                                                                                                                                                                                                   \n             OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카오스 제로 나이트메어%')                                                                                                                                                                                          \n             OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%카오스 제로 나이트메어%'))                                                                                                                                                                                           \n    WHERE                                                                                                                                                                                                                                                      \n      TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')                                                                                                                                                                                               \n      AND s.\"EXPT_USER_YN\" = 'N'                                                                                                                                                                                                                               \n    GROUP BY                                                                                                                                                                                                                                                   \n      g.\"GAME_NM\"                                                                                                                                                                                                                                              \n  ) s2_subq                                                                                                                                                                                                                                                    \n  CROSS JOIN (                                                                                                                                                                                                                                                 \n    SELECT                                                                                                                                                                                                                                                     \n      g.\"GAME_NM\" AS GAME_NAME_2                                                                                                                                                                                                                               \n    FROM                                                                                                                                                                                                                                                       \n      \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g                                                                                                                                                                                                                       \n    WHERE                                                                                                                                                                                                                                                      \n      g.\"USE_YN\" = 'Y'                                                                                                                                                                                                                                         \n      AND (UPPER(g.\"GAME_NM\") LIKE UPPER('%카오스 제로 나이트메어%')                                                                                                                                                                                                     \n           OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카오스 제로 나이트메어%')                                                                                                                                                                                            \n           OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%카오스 제로 나이트메어%'))                                                                                                                                                                                             \n  ) g2                                                                                                                                                                                                                                                         \nWHERE                                                                                                                                                                                                                                                          \n  TRUNC(s1.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')                                                                                                                                                                   \n...[historical output truncated]",
        "execution_status": "FAIL_GENERATE",
        "judgment_status": "WARN",
        "judgment_reason": "Execution status is FAIL_GENERATE.\nPartial scenario could not generate SQL; manual split between supported and unsupported game scope is needed.",
        "duration_ms": 52515
      }
    },
    {
      "case_id": "STD-13",
      "title": "전체 매출",
      "category": "STANDARD",
      "scenario_no": 13,
      "question": "2026년 7월 15일 전체 매출 합계를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 17,
        "scenario": "게임명 미언급 — 전체 조회",
        "natural_question": "어제 전체 매출 알려줘",
        "sample_query": "별도 샘플 쿼리 없음",
        "note": "L1 게임에 대한 가이드 필요할 듯\n일일 지표 합산과 동일한 값이라고 한다면 로스트아크 제외 와 같은 조건 프롬프트 제공 필요"
      },
      "expected_focus": "COMN_SALES_TXN의 PAYMT_AMT 전체 합계.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "PAYMT_AMT",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS TOTAL_SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "TOTAL_SALES_AMOUNT=227681",
        "execution_output": "TOTAL_SALES_AMOUNT\n------------------\n            227681",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 55210
      }
    },
    {
      "case_id": "STD-14",
      "title": "미등록 게임 매출",
      "category": "STANDARD",
      "scenario_no": 14,
      "question": "2026년 7월 15일 테스트게임 매출 조회해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 18,
        "scenario": "미등록 게임명 입력",
        "natural_question": "테스트게임 매출 조회해줘",
        "sample_query": "별도 샘플 쿼리 없음",
        "note": ""
      },
      "expected_focus": "미등록 게임은 임의 game_id 생성 없이 거절/실패해야 한다.",
      "support_level": "UNSUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS TOTAL_SALES_AMT,\n  COUNT(DISTINCT s.\"GUID\") AS PAYING_USER_COUNT,\n  COUNT(*) AS TRANSACTION_COUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  s.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%테스트게임%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%테스트게임%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%테스트게임%')\n        OR UPPER(g.\"GAME_ID\") LIKE UPPER('%테스트게임%')\n      )\n      AND s.\"GAME_ID\" = g.\"GAME_ID\"\n  )",
        "answer_text": "TOTAL_SALES_AMT PAYING_USER_COUNT TRANSACTION_COUNT\n--------------- ----------------- -----------------\n                                0                 0",
        "execution_output": "TOTAL_SALES_AMT PAYING_USER_COUNT TRANSACTION_COUNT\n--------------- ----------------- -----------------\n                                0                 0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.\nUnsupported scenario produced executable SQL constrained by COMN_GAME_ALIAS_BAS lookup; alias mismatch yields empty/NULL result.",
        "duration_ms": 48992
      }
    },
    {
      "case_id": "STD-15",
      "title": "game_id 직접 입력 매출",
      "category": "STANDARD",
      "scenario_no": 15,
      "question": "game_id가 STOVE_CHAOSZERO인 2026년 7월 15일 매출 합계를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 19,
        "scenario": "game_id 직접 입력",
        "natural_question": "game_id가 STOVE_CHAOSZERO 매출 보여줘",
        "sample_query": "SELECT SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_CHAOSZERO'\n   AND EXPT_USER_YN = 'N'",
        "note": "STOVE_CHAOSZERO 매출 보여줘 이렇게만 질문해도 제대로 조건 적용해줄 수 있는지 확인"
      },
      "expected_focus": "COMN_SALES_TXN, GAME_ID='STOVE_CHAOSZERO', PAYMT_AMT 합계.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "PAYMT_AMT",
          "SUM",
          "STOVE_CHAOSZERO"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS TOTAL_SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  s.\"GAME_ID\" = 'STOVE_CHAOSZERO'\n  AND TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "TOTAL_SALES_AMOUNT=227681",
        "execution_output": "TOTAL_SALES_AMOUNT\n------------------\n            227681",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 56149
      }
    },
    {
      "case_id": "STD-16",
      "title": "어제 카제나 AU",
      "category": "STANDARD",
      "scenario_no": 16,
      "question": "2026년 7월 15일 카제나 AU 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 21,
        "scenario": "날짜 상대표현 — 어제",
        "natural_question": "어제 카제나 AU 알려줘",
        "sample_query": "SELECT COUNT(1)\n FROM DW.CZN_COMN_USER_MST\nWHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n  AND AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'\n   AND STD_USER_YN = 'Y' -- 해당 조건 생략 가능",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST, AU_FLAG=1, EXPT_USER_YN='N'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "AU_COUNT=0",
        "execution_output": "AU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 66228
      }
    },
    {
      "case_id": "STD-17",
      "title": "지난달 카제나 매출",
      "category": "STANDARD",
      "scenario_no": 17,
      "question": "2026년 7월 15일 카제나 매출 합계를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 22,
        "scenario": "날짜 상대표현 — 지난달",
        "natural_question": "지난달 카제나 매출",
        "sample_query": "SELECT SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT BETWEEN TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MM') AND DATE_SUB(TRUNC(CURRENT_DATE, 'MM'), 1)\n   AND GAME_ID = 'STOVE_CHAOSZERO'\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "현재 샘플 기준일로 보정한 COMN_SALES_TXN 매출 합계.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_GAME_ALIAS_BAS",
          "PAYMT_AMT",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS TOTAL_SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  s.\"EXPT_USER_YN\" = 'N'\n  AND TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n      AND s.\"GAME_ID\" = g.\"GAME_ID\"\n  )",
        "answer_text": "TOTAL_SALES_AMOUNT=227681",
        "execution_output": "TOTAL_SALES_AMOUNT\n------------------\n            227681",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 65168
      }
    },
    {
      "case_id": "STD-18",
      "title": "1만원 초과 주문",
      "category": "STANDARD",
      "scenario_no": 18,
      "question": "2026년 7월 15일 전체 매출에서 결제금액이 1만원 넘는 주문만 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 23,
        "scenario": "단위 인식 — 만원",
        "natural_question": "어제 매출에서 1만원 넘는 주문만",
        "sample_query": "SELECT *\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND PAYMT_AMT > 10000\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "COMN_SALES_TXN, PAYMT_AMT > 10000.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "PAYMT_AMT",
          "10000"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS TOTAL_SALES_AMOUNT,\n  COUNT(DISTINCT s.\"GUID\") AS BUYER_COUNT,\n  COUNT(*) AS ORDER_COUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND CAST(s.\"PAYMT_AMT\" AS NUMBER) > 10000\n  AND s.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "TOTAL_SALES_AMOUNT BUYER_COUNT ORDER_COUNT\n------------------ ----------- -----------\n            204720           6           6",
        "execution_output": "TOTAL_SALES_AMOUNT BUYER_COUNT ORDER_COUNT\n------------------ ----------- -----------\n            204720           6           6",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 47379
      }
    },
    {
      "case_id": "STD-19",
      "title": "매출 발생 유저 수",
      "category": "STANDARD",
      "scenario_no": 19,
      "question": "2026년 7월 15일 카제나 매출 발생 유저 수를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 24,
        "scenario": "동의어 매핑",
        "natural_question": "어제 카제나 매출 발생 유저 수 알려줘\n어제 카제나 구매자 수 알려줘\n어제 카제나 결제 유저 수 알려줘",
        "sample_query": "SELECT COUNT(DISTINCT GUID)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_CHAOSZERO'\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "COMN_SALES_TXN, COUNT(DISTINCT GUID), GAME_ID='STOVE_CHAOSZERO'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_GAME_ALIAS_BAS",
          "GUID",
          "COUNT",
          "DISTINCT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT s.\"GUID\") AS SALES_USER_COUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\n  INNER JOIN \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    ON s.\"GAME_ID\" = g.\"GAME_ID\"\nWHERE\n  g.\"GAME_NM\" LIKE '%' || UPPER('카제나') || '%'\n  AND g.\"USE_YN\" = 'Y'\n  AND TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "SALES_USER_COUNT=10",
        "execution_output": "SALES_USER_COUNT\n----------------\n              10",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 52163
      }
    },
    {
      "case_id": "STD-20",
      "title": "구어체 매출",
      "category": "STANDARD",
      "scenario_no": 20,
      "question": "2026년 7월 15일 카제나 매출 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 25,
        "scenario": "구어체 컬럼 매핑",
        "natural_question": "어제 카제나 매출 알려줘",
        "sample_query": "SELECT SUM(PAYMT_AMT)\n  FROM DW.COMN_SALES_TXN\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND GAME_ID = 'STOVE_CHAOSZERO'\n   AND EXPT_USER_YN = 'N'",
        "note": ""
      },
      "expected_focus": "COMN_SALES_TXN, PAYMT_AMT 합계, GAME_ID='STOVE_CHAOSZERO'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_GAME_ALIAS_BAS",
          "PAYMT_AMT",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(s.\"PAYMT_AMT\" AS NUMBER)) AS SALES_AMOUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\nWHERE\n  s.\"EXPT_USER_YN\" = 'N'\n  AND TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n      AND s.\"GAME_ID\" = g.\"GAME_ID\"\n  )",
        "answer_text": "SALES_AMOUNT=227681",
        "execution_output": "SALES_AMOUNT\n------------\n      227681",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 51070
      }
    },
    {
      "case_id": "STD-21",
      "title": "복수 조건 AND",
      "category": "STANDARD",
      "scenario_no": 21,
      "question": "2026년 7월 15일 카제나 한국 유저 중 7일 이상 연속 접속한 유저 수를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 26,
        "scenario": "복수 조건 AND/OR 구분",
        "natural_question": "카제나 한국 유저 중 7일 이상 연속 접속한 유저",
        "sample_query": "SELECT *\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND AU_FLAG = 1\n   AND STD_USER_YN = 'Y' -- 해당 조건 생략 가능\n   AND EXPT_USER_YN = 'N'\n   AND LAST_CONN_COUNTRY_CD = 'KR'\n   AND CONTINUE_CONN_DCNT >= 7",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST, LAST_CONN_COUNTRY_CD='KR', CONTINUE_CONN_DCNT >= 7.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "LAST_CONN_COUNTRY_CD",
          "KR",
          "CONTINUE_CONN_DCNT",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS CONTINUOUS_7DAYS_USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"LAST_CONN_COUNTRY_CD\" = 'KR'\n  AND u.\"CONTINUE_CONN_DCNT\" >= 7\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "CONTINUOUS_7DAYS_USER_COUNT=0",
        "execution_output": "CONTINUOUS_7DAYS_USER_COUNT\n---------------------------\n                          0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 52228
      }
    },
    {
      "case_id": "STD-22",
      "title": "일별 NRU",
      "category": "STANDARD",
      "scenario_no": 22,
      "question": "2026년 7월 15일 카제나 NRU 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 28,
        "scenario": "일별 NRU",
        "natural_question": "카제나 어제 NRU 알려줘",
        "sample_query": "SELECT COUNT(1) AS NRU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND EXPT_USER_YN = 'N'\n   AND NRU_FLAG = 1\n   AND STD_USER_YN = 'Y' -- 해당 조건 생략 가능",
        "note": "STD_USER_YN = 'Y' 생략 가능 — BASE_DT 단일 시점 기준이므로 해당 날짜의 표준 유저 여부가 이미 확정됨"
      },
      "expected_focus": "CZN_COMN_USER_MST, NRU_FLAG=1.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "NRU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS NRU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"NRU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n      AND g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "NRU_COUNT=0",
        "execution_output": "NRU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 49058
      }
    },
    {
      "case_id": "STD-23",
      "title": "일별 AU",
      "category": "STANDARD",
      "scenario_no": 23,
      "question": "2026년 7월 15일 카제나 AU 구해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 29,
        "scenario": "일별 AU",
        "natural_question": "카제나 어제 AU 구해줘",
        "sample_query": "SELECT COUNT(1) AS AU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND EXPT_USER_YN = 'N'\n   AND AU_FLAG = 1\n   AND STD_USER_YN = 'Y' -- 해당 조건 생략 가능",
        "note": "STD_USER_YN = 'Y' 생략 가능 — BASE_DT 단일 시점 기준이므로 해당 날짜의 표준 유저 여부가 이미 확정됨"
      },
      "expected_focus": "CZN_COMN_USER_MST, AU_FLAG=1.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "AU_COUNT=0",
        "execution_output": "AU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 49017
      }
    },
    {
      "case_id": "STD-24",
      "title": "주간 NRU",
      "category": "STANDARD",
      "scenario_no": 24,
      "question": "2026년 7월 15일 기준 최근 7일 카제나 NRU 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 30,
        "scenario": "주간 NRU",
        "natural_question": "카제나 지난주 NRU 알려줘",
        "sample_query": "SELECT COUNT(*) AS WEEKLY_NRU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU')  -- 지난주 일요일\n   AND RAW_NRU_DT BETWEEN\n           DATE_SUB(NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU'), 6)  -- 지난주 월요일\n       AND NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU')               -- 지난주 일요일\n   AND STD_USER_YN = 'Y'\n   AND EXPT_USER_YN = 'N'\n;",
        "note": "STD_USER_YN = 'Y' 필수 — 집계 기간 내 표준 유저 상태가 변동될 수 있음 (예: 월초에는 문제 유저로 분류됐다가 이후 표준 유저로 전환되는 케이스). BASE_DT(마지막날) 기준으로 표준 유저 여부를 최종 필터링해야 정확한 집계 가능"
      },
      "expected_focus": "CZN_COMN_USER_MST, RAW_NRU_DT 기간 조건.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "RAW_NRU_DT",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS NRU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"RAW_NRU_DT\" BETWEEN TO_DATE('2026-07-09', 'YYYY-MM-DD') AND TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "NRU_COUNT=0",
        "execution_output": "NRU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 47412
      }
    },
    {
      "case_id": "STD-25",
      "title": "주간 AU",
      "category": "STANDARD",
      "scenario_no": 25,
      "question": "2026년 7월 15일 기준 최근 7일 카제나 AU 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 31,
        "scenario": "주간 AU",
        "natural_question": "카제나 지난주 AU 알려줘",
        "sample_query": "SELECT COUNT(*) AS WEEKLY_AU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU')  -- 지난주 일요일\n   AND LAST_CONN_DT BETWEEN\n           DATE_SUB(NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU'), 6)  -- 지난주 월요일\n       AND NEXT_DAY(DATE_SUB(CURRENT_DATE, 8), 'SU')               -- 지난주 일요일\n   AND STD_USER_YN = 'Y'\n   AND EXPT_USER_YN = 'N'\n;",
        "note": "STD_USER_YN = 'Y' 필수 — 집계 기간 내 표준 유저 상태가 변동될 수 있음 (예: 월초에는 문제 유저로 분류됐다가 이후 표준 유저로 전환되는 케이스). BASE_DT(마지막날) 기준으로 표준 유저 여부를 최종 필터링해야 정확한 집계 가능"
      },
      "expected_focus": "CZN_COMN_USER_MST, LAST_CONN_DT 기간 조건.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "LAST_CONN_DT",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS RECENT_7DAY_AU\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = (SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\")\n  AND u.\"LAST_CONN_DT\" BETWEEN TRUNC(TO_DATE('20260715', 'YYYYMMDD')) - 6 AND TRUNC(TO_DATE('20260715', 'YYYYMMDD'))\n  AND u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "RECENT_7DAY_AU=0",
        "execution_output": "RECENT_7DAY_AU\n--------------\n             0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 48392
      }
    },
    {
      "case_id": "STD-26",
      "title": "월간 NRU",
      "category": "STANDARD",
      "scenario_no": 26,
      "question": "카제나 현재월 NRU 구해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 32,
        "scenario": "월간 NRU",
        "natural_question": "카제나 지난달 NRU 구해줘",
        "sample_query": "SELECT COUNT(*) AS MONTHLY_NRU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_SUB(TRUNC(CURRENT_DATE, 'MM'), 1)\n   AND  RAW_NRU_DT BETWEEN TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MM')\n                      AND DATE_SUB(TRUNC(CURRENT_DATE, 'MM'), 1)\n   AND STD_USER_YN = 'Y'\n   AND EXPT_USER_YN = 'N'",
        "note": "STD_USER_YN = 'Y' 필수 — 집계 기간 내 표준 유저 상태가 변동될 수 있음 (예: 월초에는 문제 유저로 분류됐다가 이후 표준 유저로 전환되는 케이스). BASE_DT(마지막날) 기준으로 표준 유저 여부를 최종 필터링해야 정확한 집계 가능"
      },
      "expected_focus": "CZN_COMN_USER_MST, MAX(BASE_DT) 최신 스냅샷, RAW_NRU_DT 월 범위 조건.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "MAX",
          "BASE_DT",
          "RAW_NRU_DT",
          "STD_USER_YN",
          "EXPT_USER_YN",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS NRU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = (SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\")\n  AND u.\"RAW_NRU_DT\" BETWEEN TRUNC(u.\"BASE_DT\", 'MM') AND u.\"BASE_DT\"\n  AND u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "NRU_COUNT=0",
        "execution_output": "NRU_COUNT\n----------\n         0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 46667
      }
    },
    {
      "case_id": "STD-27",
      "title": "월간 AU",
      "category": "STANDARD",
      "scenario_no": 27,
      "question": "카제나 지난달 AU 구해줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 33,
        "scenario": "월간 AU",
        "natural_question": "카제나 지난달 AU 구해줘",
        "sample_query": "SELECT COUNT(*) AS MONTHLY_AU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_SUB(TRUNC(CURRENT_DATE, 'MM'), 1)\n   AND  LAST_CONN_DT BETWEEN TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MM')\n                      AND DATE_SUB(TRUNC(CURRENT_DATE, 'MM'), 1)\n   AND STD_USER_YN = 'Y'\n   AND EXPT_USER_YN = 'N'",
        "note": "STD_USER_YN = 'Y' 필수 — 집계 기간 내 표준 유저 상태가 변동될 수 있음 (예: 월초에는 문제 유저로 분류됐다가 이후 표준 유저로 전환되는 케이스). BASE_DT(마지막날) 기준으로 표준 유저 여부를 최종 필터링해야 정확한 집계 가능"
      },
      "expected_focus": "CZN_COMN_USER_MST, MAX(BASE_DT) 기준 전월 스냅샷, LAST_CONN_DT 전월 범위, STD_USER_YN/EXPT_USER_YN 조건.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "MAX",
          "BASE_DT",
          "ADD_MONTHS",
          "LAST_CONN_DT",
          "STD_USER_YN",
          "EXPT_USER_YN",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS LAST_MONTH_AU\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = LAST_DAY(ADD_MONTHS((SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\"), -1))\n  AND u.\"LAST_CONN_DT\" BETWEEN TRUNC(ADD_MONTHS((SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\"), -1), 'MM') AND LAST_DAY(ADD_MONTHS((SELECT MAX(\"BASE_DT\") FROM \"SGMP_POC\".\"CZN_COMN_USER_MST\"), -1))\n  AND u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "LAST_MONTH_AU=0",
        "execution_output": "LAST_MONTH_AU\n-------------\n            0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 51920
      }
    },
    {
      "case_id": "STD-28",
      "title": "RU 전체 유저",
      "category": "STANDARD",
      "scenario_no": 28,
      "question": "2026년 7월 15일 카제나 기준 전체 유저 수를 알려줘.",
      "source": {
        "workbook": "표준 DW 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "POC 시나리오",
        "excel_row": 34,
        "scenario": "RU (전체 유저)",
        "natural_question": "카제나 어제 기준 전체 유저 수",
        "sample_query": "SELECT COUNT(1) AS RU\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = DATE_ADD(`CURRENT_DATE`(), -1)\n   AND EXPT_USER_YN = 'N'\n   AND STD_USER_YN = 'Y'",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST, STD_USER_YN='Y', EXPT_USER_YN='N'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "STD_USER_YN",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS TOTAL_USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"STD_USER_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "TOTAL_USER_COUNT=10",
        "execution_output": "TOTAL_USER_COUNT\n----------------\n              10",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 46640
      }
    },
    {
      "case_id": "CZN-01",
      "title": "사업 AU",
      "category": "CZN",
      "scenario_no": 1,
      "question": "카제나에서 2026년 7월 15일 기준 사업 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 2,
        "scenario": "EBIR-6034",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별 사업 AU 를 알려줘.",
        "sample_query": "SELECT BASE_DT\n         , COUNT(1) AS AU_CNT -- COUNT(DISTINCT GUID) 사용 가능\n  FROM DW.CZN_CUSTOM_BIZ_USER_TXN\n WHERE BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND BIZ_AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'\n GROUP BY BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_CUSTOM_BIZ_USER_TXN, BIZ_AU_FLAG=1.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_BIZ_USER_TXN",
          "BIZ_AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT b.\"GUID\") AS BIZ_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_BIZ_USER_TXN\" b\nWHERE\n  b.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND b.\"BIZ_AU_FLAG\" = 1\n  AND b.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "BIZ_AU_COUNT=1",
        "execution_output": "BIZ_AU_COUNT\n------------\n           1",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 48171
      }
    },
    {
      "case_id": "CZN-02",
      "title": "표준 AU",
      "category": "CZN",
      "scenario_no": 2,
      "question": "카제나에서 2026년 7월 15일 기준 표준 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 3,
        "scenario": "EBIR-6034",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별 표준 AU 를 알려줘.",
        "sample_query": "SELECT BASE_DT\n     , COUNT(1) AS AU_CNT -- COUNT(DISTINCT GUID) 사용 가능\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'\n GROUP BY BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST, AU_FLAG=1.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS STD_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "STD_AU_COUNT=0",
        "execution_output": "STD_AU_COUNT\n------------\n           0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 45976
      }
    },
    {
      "case_id": "CZN-03",
      "title": "표준 AU와 사업 AU 비교",
      "category": "CZN",
      "scenario_no": 3,
      "question": "카제나에서 2026년 7월 15일 기준 표준 AU와 사업 AU를 비교해서 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 4,
        "scenario": "EBIR-6034",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별 표준 AU와 사업 AU 를 비교해서 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , SUM(CASE WHEN T1.AU_FLAG = 1 THEN 1 END) AS STD_AU_CNT\n     , SUM(CASE WHEN T2.BIZ_AU_FLAG = 1 THEN 1 END) AS BIZ_AU_CNT\n  FROM DW.CZN_COMN_USER_MST T1\n  LEFT JOIN DW.CZN_CUSTOM_BIZ_USER_TXN T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n WHERE T1.BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY T1.BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST와 CZN_CUSTOM_BIZ_USER_TXN의 AU 지표 비교.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "CZN_CUSTOM_BIZ_USER_TXN",
          "AU_FLAG",
          "BIZ_AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  STD_AU.STD_AU_COUNT,\n  BIZ_AU.BIZ_AU_COUNT\nFROM\n  (\n    SELECT\n      COUNT(DISTINCT u.\"GUID\") AS STD_AU_COUNT\n    FROM\n      \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    WHERE\n      u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n      AND u.\"AU_FLAG\" = 1\n      AND u.\"EXPT_USER_YN\" = 'N'\n      AND EXISTS (\n        SELECT 1\n        FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n        WHERE g.\"USE_YN\" = 'Y'\n          AND (\n            UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n            OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n            OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n          )\n          AND g.\"GAME_PREFIX\" = 'CZN'\n      )\n  ) STD_AU,\n  (\n    SELECT\n      COUNT(DISTINCT b.\"GUID\") AS BIZ_AU_COUNT\n    FROM\n      \"SGMP_POC\".\"CZN_CUSTOM_BIZ_USER_TXN\" b\n    WHERE\n      b.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n      AND b.\"BIZ_AU_FLAG\" = 1\n      AND b.\"EXPT_USER_YN\" = 'N'\n  ) BIZ_AU",
        "answer_text": "STD_AU_COUNT BIZ_AU_COUNT\n------------ ------------\n           0            1",
        "execution_output": "STD_AU_COUNT BIZ_AU_COUNT\n------------ ------------\n           0            1",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 52090
      }
    },
    {
      "case_id": "CZN-04",
      "title": "캐릭터 AU",
      "category": "CZN",
      "scenario_no": 4,
      "question": "카제나에서 2026년 7월 15일 기준 캐릭터 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 5,
        "scenario": "",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별 캐릭터 AU 를 알려줘.",
        "sample_query": "SELECT BASE_DT\n     , COUNT(1) AS AU_CNT -- COUNT(DISTINCT CONCAT(SERVER_CD, '_', CUID)) 사용 가능\n  FROM DW.CZN_COMN_CHARACTER_MST\n WHERE BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND AU_FLAG = 1\n   AND EXPT_USER_YN = 'N'\n GROUP BY BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_CHARACTER_MST, AU_FLAG=1.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_CHARACTER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT c.\"CUID\") AS CHARACTER_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_CHARACTER_MST\" c\nWHERE\n  c.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"AU_FLAG\" = 1\n  AND c.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "CHARACTER_AU_COUNT=0",
        "execution_output": "CHARACTER_AU_COUNT\n------------------\n                 0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 49640
      }
    },
    {
      "case_id": "CZN-05",
      "title": "주요 국가별 사업 AU",
      "category": "CZN",
      "scenario_no": 5,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 사업 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 6,
        "scenario": "EBIR-6034",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별, 주요 국가별 사업 AU 를 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(1) AS BIZ_AU_CNT\n  FROM DW.CZN_CUSTOM_BIZ_USER_TXN T1\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T2.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005' -- 주요 국가\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND T1.BIZ_AU_FLAG = 1\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY T1.BASE_DT\n        , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": "-- 주요 국가 확인 방법\nSELECT *\n  FROM META.COMN_ITG_CD_BAS\n WHERE ITG_CD_GROUP_ID = 'G20005' -- 주요국가\n   AND SVC_DIV_CD = 'STOVE_CHAOSZERO'"
      },
      "expected_focus": "CZN_CUSTOM_BIZ_USER_TXN와 CZN_COMN_USER_MST 국가 컬럼 조인.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_BIZ_USER_TXN",
          "CZN_COMN_USER_MST",
          "BIZ_AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  COUNT(DISTINCT b.\"GUID\") AS BIZ_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_BIZ_USER_TXN\" b\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON b.\"GUID\" = u.\"GUID\"\n    AND b.\"BASE_DT\" = u.\"BASE_DT\"\nWHERE\n  b.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND b.\"BIZ_AU_FLAG\" = 1\n  AND b.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\"\nORDER BY\n  BIZ_AU_COUNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 50201
      }
    },
    {
      "case_id": "CZN-06",
      "title": "주요 국가별 표준 AU",
      "category": "CZN",
      "scenario_no": 6,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 표준 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 7,
        "scenario": "EBIR-6034",
        "natural_question": "카제나에서 2026년 5월 25일부터 5월 31일까지 일자별, 주요 국가별 표준 AU 를 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(1) AS STD_AU_CNT\n  FROM DW.CZN_COMN_USER_MST T1\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T1.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005' -- 주요 국가\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT BETWEEN '2026-05-25' AND '2026-05-31'\n   AND T1.AU_FLAG = 1\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY T1.BASE_DT\n        , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST 국가 컬럼과 AU_FLAG 집계.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  c.\"COUNTRY_KR_NM\" AS COUNTRY_NM,\n  COUNT(DISTINCT u.\"GUID\") AS STD_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nLEFT JOIN\n  \"SGMP_POC\".\"COMN_COUNTRY_BAS\" c\n  ON u.\"LAST_CONN_COUNTRY_CD\" = c.\"COUNTRY_2CHAR_CD\"\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n      AND g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\",\n  c.\"COUNTRY_KR_NM\"\nORDER BY\n  STD_AU_COUNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 51693
      }
    },
    {
      "case_id": "CZN-07",
      "title": "크리스탈 보유 유저/보유량",
      "category": "CZN",
      "scenario_no": 7,
      "question": "카제나에서 2026년 4월 23일부터 4월 30일까지 일자별 크리스탈 보유 유저 수와 총 크리스탈 보유량을 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 8,
        "scenario": "EBIR-5903",
        "natural_question": "카제나에서 2026년 4월 23일부터 4월 30일까지 일자별 크리스탈 보유 유저 수와 총 크리스탈 보유량을 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , COUNT(DISTINCT T1.GUID) AS HAVE_USER_CNT\n     , SUM(T1.HAVE_CNT) AS HAVE_CNT_SUM\n  FROM DW.CZN_CUSTOM_GOODS_HAVE_TXN T1\n INNER JOIN META.CZN_COMN_SVC_DIM_BAS D1\n    ON T1.GOODS_CD = D1.DIM_CD\n   AND T1.BASE_DT = D1.BASE_DT\n   AND D1.DIM_TYPE_DIV_CD = 'GOODS_AGG'\n   AND D1.DIM_CTG_2_KR_NM = '크리스탈' -- 유료/무료 크리스탈을 모두 확인하기 위해 카테고리 명으로 확인\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n   AND T2.RU_FLAG = 1\n   AND T2.EXPT_USER_YN = 'N'\n WHERE T1.BASE_DT BETWEEN '2026-04-23' AND '2026-04-30'\n   AND T1.HAVE_CNT <> 0\n GROUP BY T1.BASE_DT\n ORDER BY 1\n;",
        "note": "-- 재화 코드 확인 방법\nSELECT *\n  FROM META.CZN_COMN_SVC_DIM_BAS\n WHERE BASE_DT = '2026-06-24' -- 조회 필요한 날짜 기준\n   AND DIM_TYPE_DIV_CD = 'GOODS_AGG'\n\n\n- 유저에 대한 기준 명시가 없는 경우 전체 유저(RU) 대상으로 집계"
      },
      "expected_focus": "재화 보유 테이블 집계, 재화 차원 lookup, 유저 모집단 조인, HAVE_CNT<>0, BASE_DT 일자별 GROUP BY.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_GOODS_HAVE_TXN",
          "CZN_COMN_SVC_DIM_BAS",
          "CZN_COMN_USER_MST",
          "GOODS_CD",
          "DIM_CD",
          "BASE_DT",
          "HAVE_CNT",
          "COUNT",
          "SUM",
          "GROUP"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  g.\"BASE_DT\",\n  COUNT(DISTINCT u.\"GUID\") AS USER_COUNT,\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) AS TOTAL_CRYSTAL_AMOUNT\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_GOODS_HAVE_TXN\" g\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON g.\"GUID\" = u.\"GUID\"\n    AND g.\"BASE_DT\" = u.\"BASE_DT\"\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_SVC_DIM_BAS\" d\n    ON g.\"GOODS_CD\" = d.\"DIM_CD\"\n    AND g.\"BASE_DT\" = d.\"BASE_DT\"\nWHERE\n  EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\n    WHERE a.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(a.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n  )\n  AND d.\"DIM_TYPE_DIV_CD\" = 'GOODS_AGG'\n  AND d.\"DIM_CTG_2_KR_NM\" = '크리스탈'\n  AND g.\"HAVE_CNT\" <> 0\n  AND u.\"RU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND g.\"BASE_DT\" BETWEEN TO_DATE('2026-04-23', 'YYYY-MM-DD') AND TO_DATE('2026-04-30', 'YYYY-MM-DD')\nGROUP BY\n  g.\"BASE_DT\"\nORDER BY\n  g.\"BASE_DT\" ASC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 52287
      }
    },
    {
      "case_id": "CZN-08",
      "title": "표준 AU 크리스탈 보유량",
      "category": "CZN",
      "scenario_no": 8,
      "question": "카제나에서 2026년 7월 15일 기준 표준 AU의 크리스탈 총 보유량과 1인당 평균 보유량을 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 9,
        "scenario": "EBIR-5903",
        "natural_question": "카제나에서 2026년 4월 23일부터 4월 30일까지 일자별 표준 AU 의 크리스탈 총 보유량과 1인당 평균 보유량을 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , COUNT(DISTINCT T1.GUID) AS  HAVE_USER_CNT\n     , SUM(T1.HAVE_CNT) AS HAVE_CNT_SUM\n     , SUM(T1.HAVE_CNT) / COUNT(DISTINCT T1.GUID) AS AVG_HAVE_CNT_PER_AU\n  FROM DW.CZN_CUSTOM_GOODS_HAVE_TXN T1\n INNER JOIN META.CZN_COMN_SVC_DIM_BAS D1\n    ON T1.GOODS_CD = D1.DIM_CD\n   AND T1.BASE_DT = D1.BASE_DT\n   AND D1.DIM_TYPE_DIV_CD = 'GOODS_AGG'\n   AND D1.DIM_CTG_2_KR_NM = '크리스탈' -- 유료/무료 크리스탈을 모두 확인하기 위해 카테고리 명으로 확인\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n   AND T2.AU_FLAG = 1\n   AND T2.EXPT_USER_YN = 'N'\n WHERE T1.BASE_DT BETWEEN '2026-04-23' AND '2026-04-30'\n   AND T1.HAVE_CNT <> 0\n GROUP BY T1.BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_CUSTOM_GOODS_HAVE_TXN, CZN_COMN_USER_MST, CZN_COMN_SVC_DIM_BAS, AU_FLAG=1, EXPT_USER_YN='N', SUM(HAVE_CNT)/COUNT(DISTINCT GUID).",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_GOODS_HAVE_TXN",
          "CZN_COMN_USER_MST",
          "CZN_COMN_SVC_DIM_BAS",
          "AU_FLAG",
          "EXPT_USER_YN",
          "HAVE_CNT",
          "SUM",
          "COUNT",
          "DISTINCT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) AS TOTAL_CRYSTAL_HAVE,\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) / NULLIF(COUNT(DISTINCT u.\"GUID\"), 0) AS AVG_CRYSTAL_PER_USER\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_GOODS_HAVE_TXN\" g\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON g.\"GUID\" = u.\"GUID\"\n    AND g.\"BASE_DT\" = u.\"BASE_DT\"\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_SVC_DIM_BAS\" d\n    ON g.\"GOODS_CD\" = d.\"DIM_CD\"\n    AND g.\"BASE_DT\" = d.\"BASE_DT\"\n  INNER JOIN \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\n    ON a.\"USE_YN\" = 'Y'\n    AND (\n      UPPER(a.\"GAME_NM\") LIKE UPPER('%카제나%')\n      OR UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n      OR UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%카제나%')\n      OR UPPER(a.\"GAME_ID\") LIKE UPPER('%카제나%')\n    )\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND d.\"DIM_TYPE_DIV_CD\" = 'GOODS_AGG'\n  AND d.\"DIM_CTG_2_KR_NM\" = '크리스탈'\n  AND g.\"HAVE_CNT\" <> 0\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" alias_check\n    WHERE alias_check.\"USE_YN\" = 'Y'\n      AND alias_check.\"GAME_PREFIX\" = 'CZN'\n      AND (\n        UPPER(alias_check.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(alias_check.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n      )\n  )",
        "answer_text": "TOTAL_CRYSTAL_HAVE AVG_CRYSTAL_PER_USER=------------------ --------------------",
        "execution_output": "TOTAL_CRYSTAL_HAVE AVG_CRYSTAL_PER_USER\n------------------ --------------------",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 52736
      }
    },
    {
      "case_id": "CZN-09",
      "title": "국가별 평균 크리스탈",
      "category": "CZN",
      "scenario_no": 9,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 표준 AU의 1인당 평균 크리스탈 보유량을 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 10,
        "scenario": "EBIR-5903",
        "natural_question": "카제나에서 2026년 4월 23일부터 4월 30일까지 일자별, 주요 국가별 표준 AU 의 1인당 평균 크리스탈 보유량을 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D2.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(DISTINCT T1.GUID) AS AU_HOLDER_CNT\n     , SUM(T1.HAVE_CNT) / COUNT(DISTINCT T1.GUID) AS AVG_HAVE_CNT_PER_AU\n  FROM DW.CZN_CUSTOM_GOODS_HAVE_TXN T1\n INNER JOIN META.CZN_COMN_SVC_DIM_BAS D1\n    ON T1.GOODS_CD = D1.DIM_CD\n   AND T1.BASE_DT = D1.BASE_DT\n   AND D1.DIM_TYPE_DIV_CD = 'GOODS_AGG'\n   AND D1.DIM_CTG_2_KR_NM = '크리스탈'\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n   AND T2.AU_FLAG = 1\n   AND T2.EXPT_USER_YN = 'N'\n  LEFT JOIN META.COMN_ITG_CD_BAS D2\n    ON T2.LAST_CONN_COUNTRY_CD = D2.ITG_CD\n   AND D2.ITG_CD_GROUP_ID = 'G20005'\n   AND D2.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT BETWEEN '2026-04-23' AND '2026-04-30'\n   AND T1.HAVE_CNT <> 0\n GROUP BY T1.BASE_DT\n        , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D2.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": ""
      },
      "expected_focus": "CZN_CUSTOM_GOODS_HAVE_TXN, CZN_COMN_USER_MST, 국가 컬럼, AVG.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_GOODS_HAVE_TXN",
          "CZN_COMN_USER_MST",
          "AVG"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  c.\"COUNTRY_KR_NM\" AS COUNTRY_NM,\n  COUNT(DISTINCT u.\"GUID\") AS AU_COUNT,\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) AS TOTAL_CRYSTAL_HAVE,\n  ROUND(SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) / NULLIF(COUNT(DISTINCT u.\"GUID\"), 0), 2) AS AVG_CRYSTAL_PER_USER\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n  INNER JOIN \"SGMP_POC\".\"CZN_CUSTOM_GOODS_HAVE_TXN\" g\n    ON u.\"GUID\" = g.\"GUID\"\n    AND u.\"BASE_DT\" = g.\"BASE_DT\"\n  LEFT JOIN \"SGMP_POC\".\"COMN_COUNTRY_BAS\" c\n    ON u.\"LAST_CONN_COUNTRY_CD\" = c.\"COUNTRY_2CHAR_CD\"\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_SVC_DIM_BAS\" d\n    ON g.\"GOODS_CD\" = d.\"DIM_CD\"\n    AND g.\"BASE_DT\" = d.\"BASE_DT\"\nWHERE\n  u.\"BASE_DT\" = TO_DATE('20260715', 'YYYYMMDD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND g.\"HAVE_CNT\" <> 0\n  AND d.\"DIM_TYPE_DIV_CD\" = 'GOODS_AGG'\n  AND d.\"DIM_CTG_2_KR_NM\" = '크리스탈'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" alias_tbl\n    WHERE alias_tbl.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(alias_tbl.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(alias_tbl.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(alias_tbl.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\",\n  c.\"COUNTRY_KR_NM\"\nORDER BY\n  AU_COUNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 53921
      }
    },
    {
      "case_id": "CZN-10",
      "title": "국가별 표준 AU/플레이타임",
      "category": "CZN",
      "scenario_no": 10,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 표준 AU 수와 평균 플레이타임(초)을 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 11,
        "scenario": "EBIR-5766",
        "natural_question": "카제나에서 2026년 5월 8일에 주요 국가별 표준 AU 수와 평균 플레이타임(초)을 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(DISTINCT T1.GUID) AS AU_CNT\n     , AVG(T1.TDAY_PLAY_TIME) AS AVG_PLAY_TIME_SEC\n  FROM DW.CZN_COMN_USER_MST T1\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T1.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005'\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT = '2026-05-08'\n   AND T1.LAST_CONN_DT = '2026-05-08'\n   AND T1.AU_FLAG = 1\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY T1.BASE_DT\n        , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": "- 국가에 대한 기준이 작성되지 않은 경우에는 최종 접속 국가 기준(표준)으로 집계\n   - 그 외 국가 기준이 명시되어 있는 경우에는 해당 컬럼으로 집계\n      - ex) 최초 접속 국가"
      },
      "expected_focus": "CZN_COMN_USER_MST, COUNT, AVG(TDAY_PLAY_TIME).",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "COUNT",
          "AVG",
          "TDAY_PLAY_TIME",
          "AU_FLAG"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  COUNT(DISTINCT u.\"GUID\") AS STD_AU_COUNT,\n  ROUND(AVG(CAST(u.\"TDAY_PLAY_TIME\" AS NUMBER)), 2) AS AVG_PLAY_TIME_SEC\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND u.\"LAST_CONN_COUNTRY_CD\" IS NOT NULL\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\"\nORDER BY\n  STD_AU_COUNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 50281
      }
    },
    {
      "case_id": "CZN-11",
      "title": "국가별 누적 접속 14일 이상 표준 AU",
      "category": "CZN",
      "scenario_no": 11,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 누적 접속 14일 이상인 표준 AU 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 12,
        "scenario": "EBIR-5763",
        "natural_question": "카제나에서 2026년 5월 8일 기준 주요 국가별·누적 접속 14일 이상인 표준 AU 수를 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(DISTINCT T1.GUID) AS LOYAL_AU_CNT\n  FROM DW.CZN_COMN_USER_MST T1\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T1.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005'\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT = '2026-05-08'\n   AND T1.AU_FLAG = 1\n   AND T1.EXPT_USER_YN = 'N'\n   AND T1.ACM_CONN_DCNT >= 14\n GROUP BY T1.BASE_DT\n        , CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_USER_MST, ACM_CONN_DCNT >= 14.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "ACM_CONN_DCNT",
          "14",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  COUNT(DISTINCT u.\"GUID\") AS STD_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND u.\"ACM_CONN_DCNT\" >= 14\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\"\nORDER BY\n  u.\"LAST_CONN_COUNTRY_CD\"",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 51846
      }
    },
    {
      "case_id": "CZN-12",
      "title": "주요 국가별 사업 AU 재확인",
      "category": "CZN",
      "scenario_no": 12,
      "question": "카제나에서 2026년 7월 15일 기준 주요 국가별 사업 AU를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 13,
        "scenario": "EBIR-5742",
        "natural_question": "카제나에서 2026년 4월 2일부터 4월 8일까지 일자별· 주요 국가별 사업 AU 를 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(1) AS BIZ_AU_CNT\n  FROM DW.CZN_CUSTOM_BIZ_USER_TXN T1\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T2.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005'\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT BETWEEN '2026-04-02' AND '2026-04-08'\n   AND T1.BIZ_AU_FLAG = 1\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY T1.BASE_DT\n        , CASE WHEN T2.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 1, 2\n;",
        "note": ""
      },
      "expected_focus": "CZN_CUSTOM_BIZ_USER_TXN와 CZN_COMN_USER_MST 국가 컬럼 조인.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_BIZ_USER_TXN",
          "CZN_COMN_USER_MST",
          "BIZ_AU_FLAG"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  c.\"COUNTRY_KR_NM\" AS COUNTRY_NM,\n  COUNT(DISTINCT b.\"GUID\") AS BIZ_AU_CNT\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_BIZ_USER_TXN\" b\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON b.\"GUID\" = u.\"GUID\"\n    AND u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  LEFT JOIN \"SGMP_POC\".\"COMN_COUNTRY_BAS\" c\n    ON u.\"LAST_CONN_COUNTRY_CD\" = c.\"COUNTRY_2CHAR_CD\"\nWHERE\n  b.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND b.\"BIZ_AU_FLAG\" = 1\n  AND b.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" ga\n    WHERE ga.\"USE_YN\" = 'Y'\n      AND UPPER(ga.\"GAME_NM\") LIKE UPPER('%카제나%')\n      AND ga.\"GAME_PREFIX\" = 'CZN'\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\",\n  c.\"COUNTRY_KR_NM\"\nORDER BY\n  BIZ_AU_CNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 51319
      }
    },
    {
      "case_id": "CZN-13",
      "title": "에테르 사용량/사용 유저",
      "category": "CZN",
      "scenario_no": 13,
      "question": "카제나에서 2026년 7월 15일 기준 에테르 총 사용량과 사용 유저 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 14,
        "scenario": "EBIR-5742",
        "natural_question": "카제나에서 2026년 4월 2일부터 4월 8일까지 일자별 에테르 총 사용량과 사용 유저 수를 알려줘.",
        "sample_query": "SELECT T1.BASE_DT\n     , COUNT(DISTINCT T1.GUID) AS USER_CNT\n     , SUM(T1.GOODS_CHANGE_CNT) AS AETHER_USE_SUM\n  FROM DW.CZN_CUSTOM_GOODS_CHANGE_TXN T1\n INNER JOIN META.CZN_COMN_SVC_DIM_BAS D1\n    ON T1.GOODS_CD = D1.DIM_CD\n   AND T1.BASE_DT = D1.BASE_DT\n   AND D1.DIM_TYPE_DIV_CD = 'GOODS_AGG'\n   AND D1.DIM_CTG_2_KR_NM = '에테르'\n   AND D1.USE_YN = 'Y'\n INNER JOIN DW.CZN_COMN_USER_MST T2\n    ON T1.GUID = T2.GUID\n   AND T1.BASE_DT = T2.BASE_DT\n   AND T2.EXPT_USER_YN = 'N'\n WHERE T1.BASE_DT BETWEEN '2026-04-02' AND '2026-04-08'\n   AND T1.CHANGE_TYPE_CD = 'USE'\n GROUP BY T1.BASE_DT\n ORDER BY 1\n;",
        "note": ""
      },
      "expected_focus": "CZN_CUSTOM_GOODS_CHANGE_TXN와 CZN_COMN_SVC_DIM_BAS GOODS_CD/DIM_CD 조인, CHANGE_TYPE_CD='USE', GOODS_CHANGE_CNT, EXPT_USER_YN='N'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_CUSTOM_GOODS_CHANGE_TXN",
          "CZN_COMN_SVC_DIM_BAS",
          "CZN_COMN_USER_MST",
          "GOODS_CD",
          "GOODS_CHANGE_CNT",
          "CHANGE_TYPE_CD",
          "USE",
          "EXPT_USER_YN",
          "COUNT",
          "DISTINCT",
          "SUM"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(g.\"GOODS_CHANGE_CNT\" AS NUMBER)) AS TOTAL_ETHER_USAGE,\n  COUNT(DISTINCT u.\"GUID\") AS USAGE_USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_GOODS_CHANGE_TXN\" g\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON g.\"GUID\" = u.\"GUID\"\n    AND g.\"BASE_DT\" = u.\"BASE_DT\"\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_SVC_DIM_BAS\" d\n    ON g.\"GOODS_CD\" = d.\"DIM_CD\"\n    AND g.\"BASE_DT\" = d.\"BASE_DT\"\nWHERE\n  g.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND g.\"CHANGE_TYPE_CD\" = 'USE'\n  AND d.\"DIM_TYPE_DIV_CD\" = 'GOODS_AGG'\n  AND UPPER(d.\"DIM_CTG_2_KR_NM\") = UPPER('에테르')\n  AND d.\"USE_YN\" = 'Y'\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\n    WHERE a.\"USE_YN\" = 'Y'\n      AND a.\"GAME_PREFIX\" = 'CZN'\n      AND UPPER(a.\"GAME_NM\") LIKE UPPER('%카제나%')\n  )",
        "answer_text": "TOTAL_ETHER_USAGE USAGE_USER_COUNT\n----------------- ----------------\n                                 0",
        "execution_output": "TOTAL_ETHER_USAGE USAGE_USER_COUNT\n----------------- ----------------\n                                 0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 44089
      }
    },
    {
      "case_id": "CZN-14",
      "title": "이탈 유저",
      "category": "CZN",
      "scenario_no": 14,
      "question": "카제나에서 2026년 7월 15일 기준 이탈 유저 수 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 15,
        "scenario": "",
        "natural_question": "카제나에서 2026년 5월 17일 이탈 유저 수 알려줘",
        "sample_query": "SELECT COUNT(*)\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = '2026-05-17'\n   AND USER_TYPE_ITG_CD = 'CHURN'\n   AND EXPT_USER_YN = 'N'\n   AND STD_USER_YN = 'Y'",
        "note": "이탈 유저 기준: 마지막 접속 후 7일이 초과한 유저(GUID)"
      },
      "expected_focus": "CZN_COMN_USER_MST, USER_TYPE_ITG_CD='CHURN'.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "USER_TYPE_ITG_CD",
          "CHURN",
          "COUNT"
        ],
        "recommended_sql_terms": [
          "EXPT_USER_YN"
        ]
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS CHURN_USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"USER_TYPE_ITG_CD\" = 'CHURN'\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "CHURN_USER_COUNT=10",
        "execution_output": "CHURN_USER_COUNT\n----------------\n              10",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 49275
      }
    },
    {
      "case_id": "CZN-15",
      "title": "복귀 유저",
      "category": "CZN",
      "scenario_no": 15,
      "question": "카제나에서 2026년 7월 15일 기준 복귀 유저 수 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 16,
        "scenario": "",
        "natural_question": "카제나에서 2026년 5월 17일 복귀 유저 수 알려줘",
        "sample_query": "SELECT COUNT(*)\n  FROM DW.CZN_COMN_USER_MST\n WHERE BASE_DT = '2026-05-17'\n   AND USER_TYPE_ITG_CD = 'RETURN'\n   AND EXPT_USER_YN = 'N'\n   AND STD_USER_YN = 'Y'",
        "note": "복귀 유저 기준: 이탈 후 복귀(AU로 잡힘)한 유저"
      },
      "expected_focus": "CZN_COMN_USER_MST, USER_TYPE_ITG_CD 기반 복귀 유저.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_USER_MST",
          "USER_TYPE_ITG_CD",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT u.\"GUID\") AS RETURN_USER_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND u.\"USER_TYPE_ITG_CD\" = 'RETURN'\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND g.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "RETURN_USER_COUNT=0",
        "execution_output": "RETURN_USER_COUNT\n-----------------\n                0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 48326
      }
    },
    {
      "case_id": "CZN-16",
      "title": "패키지 구매 유저",
      "category": "CZN",
      "scenario_no": 16,
      "question": "카제나에서 2026년 7월 15일 기준 '신임 함장 지원 키트 Ⅰ' 패키지를 구매한 유저 수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 17,
        "scenario": "EBIR-5995",
        "natural_question": "카제나에서 2026년 5월 8일부터 5월 12일까지 '신임 함장 지원 키트 Ⅰ' 패키지를 구매한 유저 수를 알려줘.",
        "sample_query": "SELECT COUNT(DISTINCT T1.GUID) AS USER_CNT\n  FROM DW.COMN_SALES_TXN T1\n INNER JOIN META.COMN_SALES_PRODUCT_DISP_BAS D1\n    ON T1.PRODUCT_ID = D1.PRODUCT_ID\n   AND D1.GAME_ID = 'STOVE_CHAOSZERO'\n   AND D1.PRODUCT_KR_NM = '신임 함장 지원 키트 Ⅰ'\n WHERE T1.GAME_ID = 'STOVE_CHAOSZERO'\n   AND T1.BASE_DT BETWEEN '2026-05-08' AND '2026-05-12'\n   AND T1.EXPT_USER_YN = 'N'\n;",
        "note": "-- 상품명 확인 방법\nSELECT *\n  FROM META.COMN_SALES_PRODUCT_DISP_BAS\n WHERE GAME_ID = 'STOVE_CHAOSZERO'"
      },
      "expected_focus": "COMN_SALES_TXN와 COMN_SALES_PRODUCT_DISP_BAS 상품명 조인, COUNT(DISTINCT GUID).",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "COMN_SALES_TXN",
          "COMN_SALES_PRODUCT_DISP_BAS",
          "COUNT",
          "DISTINCT",
          "GUID"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT s.\"GUID\") AS PURCHASER_COUNT\nFROM\n  \"SGMP_POC\".\"COMN_SALES_TXN\" s\n  INNER JOIN \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    ON s.\"GAME_ID\" = g.\"GAME_ID\"\n  INNER JOIN \"SGMP_POC\".\"COMN_SALES_PRODUCT_DISP_BAS\" p\n    ON s.\"GAME_ID\" = p.\"GAME_ID\"\n    AND s.\"PRODUCT_ID\" = p.\"PRODUCT_ID\"\nWHERE\n  g.\"USE_YN\" = 'Y'\n  AND UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n  AND UPPER(p.\"PRODUCT_KR_NM\") = UPPER('신임 함장 지원 키트 Ⅰ')\n  AND TRUNC(s.\"PAYMT_DTM\") = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND s.\"EXPT_USER_YN\" = 'N'",
        "answer_text": "PURCHASER_COUNT=0",
        "execution_output": "PURCHASER_COUNT\n---------------\n              0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 48855
      }
    },
    {
      "case_id": "CZN-17",
      "title": "캐릭터 AU 크리스탈",
      "category": "CZN",
      "scenario_no": 17,
      "question": "카제나에서 2026년 7월 15일 기준 캐릭터 AU의 크리스탈 총 보유량, 보유 캐릭터 수, 1인당 평균 보유량을 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 18,
        "scenario": "EBIR-5916",
        "natural_question": "카제나에서 2026년 5월 21일 기준 캐릭터 AU의 크리스탈 총 보유량, 보유 캐릭터 수, 1인당 평균 보유량을 알려줘.",
        "sample_query": "SELECT SUM(T1.HAVE_CNT) AS HAVE_SUM\n     , COUNT(DISTINCT T1.CUID) AS CUID_CNT\n     , SUM(T1.HAVE_CNT) / COUNT(DISTINCT T1.CUID) AS AVG_HAVE_CNT\n  FROM DW.CZN_CUSTOM_GOODS_HAVE_TXN T1\n INNER JOIN DW.CZN_COMN_CHARACTER_MST T2\n    ON T1.BASE_DT = T2.BASE_DT\n   AND T1.CUID = T2.CUID\n INNER JOIN META.CZN_COMN_SVC_DIM_BAS D1\n    ON T1.GOODS_CD = D1.DIM_CD\n   AND T1.BASE_DT = D1.BASE_DT\n   AND D1.DIM_TYPE_DIV_CD = 'GOODS_AGG'\n   AND D1.DIM_CTG_2_KR_NM = '크리스탈'\n WHERE T1.BASE_DT = '2026-05-21'\n   AND T2.AU_FLAG = 1\n   AND T2.EXPT_USER_YN = 'N'\n   AND T1.HAVE_CNT <> 0\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_CHARACTER_MST, CZN_CUSTOM_GOODS_HAVE_TXN, CZN_COMN_SVC_DIM_BAS, AU_FLAG=1, EXPT_USER_YN='N', SUM(HAVE_CNT)/COUNT(DISTINCT CUID).",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_CHARACTER_MST",
          "CZN_CUSTOM_GOODS_HAVE_TXN",
          "CZN_COMN_SVC_DIM_BAS",
          "CUID",
          "HAVE_CNT",
          "AU_FLAG",
          "EXPT_USER_YN",
          "SUM",
          "COUNT",
          "DISTINCT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) AS TOTAL_CRYSTAL_HAVE_CNT,\n  COUNT(DISTINCT g.\"CUID\") AS HOLDING_CHARACTER_CNT,\n  SUM(CAST(g.\"HAVE_CNT\" AS NUMBER)) / NULLIF(COUNT(DISTINCT g.\"CUID\"), 0) AS AVG_HAVE_CNT_PER_CHARACTER\nFROM\n  \"SGMP_POC\".\"CZN_CUSTOM_GOODS_HAVE_TXN\" g\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_CHARACTER_MST\" c\n    ON g.\"CUID\" = c.\"CUID\"\n    AND g.\"BASE_DT\" = c.\"BASE_DT\"\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_SVC_DIM_BAS\" d\n    ON g.\"GOODS_CD\" = d.\"DIM_CD\"\n    AND g.\"BASE_DT\" = d.\"BASE_DT\"\nWHERE\n  g.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"AU_FLAG\" = 1\n  AND c.\"EXPT_USER_YN\" = 'N'\n  AND g.\"HAVE_CNT\" <> 0\n  AND d.\"DIM_TYPE_DIV_CD\" = 'GOODS_AGG'\n  AND d.\"DIM_CTG_2_KR_NM\" = '크리스탈'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" a\n    WHERE a.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(a.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(a.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(a.\"GAME_PREFIX\") LIKE UPPER('%카제나%')\n        OR UPPER(a.\"GAME_ID\") LIKE UPPER('%카제나%')\n      )\n      AND a.\"GAME_PREFIX\" = 'CZN'\n  )",
        "answer_text": "TOTAL_CRYSTAL_HAVE_CNT HOLDING_CHARACTER_CNT AVG_HAVE_CNT_PER_CHARACTER\n---------------------- --------------------- --------------------------\n                                           0",
        "execution_output": "TOTAL_CRYSTAL_HAVE_CNT HOLDING_CHARACTER_CNT AVG_HAVE_CNT_PER_CHARACTER\n---------------------- --------------------- --------------------------\n                                           0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 43233
      }
    },
    {
      "case_id": "CZN-18",
      "title": "30레벨 이상 캐릭터 AU 국가별",
      "category": "CZN",
      "scenario_no": 18,
      "question": "카제나에서 2026년 7월 15일 기준 30레벨 이상 캐릭터 AU를 주요 국가별로 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 19,
        "scenario": "EBIR-5608",
        "natural_question": "카제나에서 2026년 4월 24일 기준 30레벨 이상 캐릭터 AU를 주요 국가별로 알려줘.",
        "sample_query": "SELECT CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n            ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END AS COUNTRY_NM\n     , COUNT(DISTINCT CUID) AS CHAR_CNT\n  FROM DW.CZN_COMN_CHARACTER_MST T1\n  LEFT JOIN META.COMN_ITG_CD_BAS D1\n    ON T1.LAST_CONN_COUNTRY_CD = D1.ITG_CD\n   AND D1.ITG_CD_GROUP_ID = 'G20005'\n   AND D1.SVC_DIV_CD = 'STOVE_CHAOSZERO'\n WHERE T1.BASE_DT = '2026-04-24'\n   AND T1.AU_FLAG = 1\n   AND T1.LEVEL >= 30\n   AND T1.EXPT_USER_YN = 'N'\n GROUP BY CASE WHEN T1.LAST_CONN_COUNTRY_CD = '_' THEN '(정보없음)'\n               ELSE COALESCE(D1.ITG_CD_KR_NM, '기타') END\n ORDER BY 2 DESC\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_CHARACTER_MST, LEVEL_COL >= 30, AU_FLAG, 국가 컬럼.",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_CHARACTER_MST",
          "LEVEL_COL",
          "30",
          "AU_FLAG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  u.\"LAST_CONN_COUNTRY_CD\" AS COUNTRY_CD,\n  COUNT(DISTINCT c.\"CUID\") AS CHARACTER_AU_COUNT\nFROM\n  \"SGMP_POC\".\"CZN_COMN_CHARACTER_MST\" c\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON c.\"GUID\" = u.\"GUID\"\n    AND c.\"BASE_DT\" = u.\"BASE_DT\"\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"LEVEL_COL\" >= 30\n  AND c.\"AU_FLAG\" = 1\n  AND c.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" ga\n    WHERE ga.\"GAME_PREFIX\" = 'CZN'\n      AND ga.\"USE_YN\" = 'Y'\n  )\nGROUP BY\n  u.\"LAST_CONN_COUNTRY_CD\"\nORDER BY\n  CHARACTER_AU_COUNT DESC",
        "answer_text": "결과 행 없음",
        "execution_output": "",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 50324
      }
    },
    {
      "case_id": "CZN-19",
      "title": "레벨 12 이상 캐릭터/평균 접속일수",
      "category": "CZN",
      "scenario_no": 19,
      "question": "카제나에서 2026년 7월 15일 AU 중 레벨 12 이상 캐릭터의 캐릭터 수와 평균 누적 접속 일수를 알려줘.",
      "source": {
        "workbook": "카제나 샘플 쿼리_20260707 (1).xlsx",
        "sheet": "text2sql 시나리오 (심플)",
        "excel_row": 20,
        "scenario": "EBIR-5186",
        "natural_question": "카제나에서 2026년 4월 2일 AU 중 레벨 12 이상 캐릭터의 캐릭터 수와 평균 누적 접속 일수를 알려줘.",
        "sample_query": "SELECT COUNT(DISTINCT CUID) AS CHAR_CNT\n     , AVG(ACM_CONN_DCNT) AS AVG_ACM_CONN_DCNT\n  FROM DW.CZN_COMN_CHARACTER_MST\n WHERE BASE_DT = '2026-04-02'\n   AND AU_FLAG = 1\n   AND LEVEL >= 12\n   AND EXPT_USER_YN = 'N'\n;",
        "note": ""
      },
      "expected_focus": "CZN_COMN_CHARACTER_MST와 CZN_COMN_USER_MST 조인, LEVEL_COL >= 12, AVG(ACM_CONN_DCNT).",
      "support_level": "SUPPORTED",
      "evaluation_rule": {
        "required_sql_terms": [
          "CZN_COMN_CHARACTER_MST",
          "CZN_COMN_USER_MST",
          "LEVEL_COL",
          "12",
          "AVG",
          "COUNT"
        ],
        "recommended_sql_terms": []
      },
      "historical_answer": {
        "generated_at": "2026-07-21T14:44:50+09:00",
        "profile": "SGMP_POC_HAIKU45",
        "model": "anthropic/claude-haiku-4.5 via OpenRouter",
        "generated_sql": "SELECT\n  COUNT(DISTINCT c.\"CUID\") AS CHARACTER_COUNT,\n  AVG(u.\"ACM_CONN_DCNT\") AS AVG_CUMULATIVE_CONN_DAYS\nFROM\n  \"SGMP_POC\".\"CZN_COMN_CHARACTER_MST\" c\n  INNER JOIN \"SGMP_POC\".\"CZN_COMN_USER_MST\" u\n    ON c.\"GUID\" = u.\"GUID\"\n    AND c.\"BASE_DT\" = u.\"BASE_DT\"\nWHERE\n  u.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"BASE_DT\" = TO_DATE('2026-07-15', 'YYYY-MM-DD')\n  AND c.\"LEVEL_COL\" >= 12\n  AND c.\"AU_FLAG\" = 1\n  AND c.\"EXPT_USER_YN\" = 'N'\n  AND u.\"AU_FLAG\" = 1\n  AND u.\"EXPT_USER_YN\" = 'N'\n  AND EXISTS (\n    SELECT 1\n    FROM \"SGMP_POC\".\"COMN_GAME_ALIAS_BAS\" g\n    WHERE g.\"USE_YN\" = 'Y'\n      AND (\n        UPPER(g.\"GAME_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_ALIAS_NM\") LIKE UPPER('%카제나%')\n        OR UPPER(g.\"GAME_PREFIX\") LIKE UPPER('%CZN%')\n      )\n  )",
        "answer_text": "CHARACTER_COUNT AVG_CUMULATIVE_CONN_DAYS\n--------------- ------------------------\n              0",
        "execution_output": "CHARACTER_COUNT AVG_CUMULATIVE_CONN_DAYS\n--------------- ------------------------\n              0",
        "execution_status": "PASS",
        "judgment_status": "PASS",
        "judgment_reason": "Required SQL terms are present.",
        "duration_ms": 50512
      }
    }
  ]
}
