지원되는 SQL 함수
인시던트 데이터를 쿼리하고 분석하는 데 사용되는 SQL API 일반적인 SQL 함수입니다.
ServiceNow 는 인시던트 테이블과 같은 테이블의 데이터를 쿼리하고 분석하기 위한 다양한 SQL 함수를 지원합니다. 이 축약된 목록은 인시던트 관리 시나리오에 중점을 둔 샘플 사용 사례 및 쿼리와 함께 범주별로 구성된 일반적인 SQL 함수를 다룹니다.
주:
쿼리 엔진은 현재 INNER 및 LEFT OUTER 조인만 지원합니다.
| 범주 | 함수 이름 | 샘플 사용 사례 | 샘플 쿼리 |
|---|---|---|---|
| 집계 Fn | 평균 | 해결된 인시던트의 평균 우선순위 수준을 계산하여 심각도 추세 측정 | 상태 = 7인 인시던트의 avg_priority_level으로 AVG(CAST(우선 순위 부동)); 선택 |
| 집계 Fn | 카운트 | 우선순위 수준별 총 미해결 인시던트 카운트 | 우선순위 선택 (1,2,3)의 상태가 우선순위로 그룹화되는 인시던트에서 incident_count 카운트(*); |
| 집계 Fn | 합계 | 모든 P1 인시던트에서 총 업데이트 수 계산 | 우선순위 = 1인 인시던트에서 total_updates SUM(sys_mod_count) 선택 |
| 집계 Fn | 최대 | 미해결 인시던트에서 가장 높은 우선순위 값 찾기 | (1,2,3)의 상태가 있는 인시던트에서 highest_priority 최대(우선순위)를 선택합니다. |
| 절 | 케이스 | 대시보드 시각화를 위해 우선순위별로 인시던트 범주화 | 번호 선택, 케이스 WHEN 우선순위 = 1 그런 다음 '중요' WHEN 우선순위 = 2 그런 다음 '높음' WHEN 우선순위 = 3 그런 다음 '중간' 그렇지 않으면 '낮음' 종료 기준 priority_label FROM 인시던트 WHERE 상태 (1,2,3); |
| 절 | 맨 위 | 품질 검토를 위해 가장 많이 수정된 상위 10개 인시던트 식별 | 인시던트에서 sys_mod_count 상위 10개 번호 선택 sys_mod_count 내림차순으로 정렬합니다. |
| 절 | 그룹화 기준 | 추세에 대한 범주별 인시던트 볼륨 분석 | 범주 선택, 카운트(*) AS 카운트 FROM 인시던트 상태 (1,2,3) 범주별 그룹화; |
| 절 | 가지고 있음 | 용량 계획 수립을 위해 50개 이상의 오픈 인시던트가 있는 할당 그룹 찾기 | assignment_group 선택 , COUNT(*)는 (1,2,3)의 상태가 COUNT(*)가 50> assignment_group 그룹화 기준open_count 인시던트의 입니다. |
| 절 | 왼쪽 조인 | 팀 성과 보고서에 대해 할당된 사용자 상세 정보가 있는 인시던트 나열 | SELECT i.number, i.priority, u.name AS assigned_to, u.department FROM incident i LEFT JOIN sys_user ON i.assigned_to = u.sys_id WHERE i.state IN (1,2,3); |
| 절 | 오름차순으로 정렬 | 에스컬레이션 검토를 위해 개시 날짜별로 가장 오래된 인시던트 검색 | (1,2,3)의 상태가 있는 인시던트에서 번호, short_description opened_at 선택 opened_at 오름차순으로 정렬합니다. |
| 절 | 구별됨 | 최근 인시던트에서 고유한 범주 목록 가져오기 | (1,2,3)의 상태인 인시던트에서 고유 범주 선택; |
| 절 | 하위 쿼리(FROM) | 활성 할당에서 사용자당 평균 인시던트 수 계산 | (assigned_to 선택, COUNT(*)incident_count 인시던트에서 avg_per_user NULL이 아닌 인시던트에서 assigned_to 그룹화 기준 assigned_to)을 user_stats로 AVG(incident_count)를 선택합니다. |
| 절 | 하위 쿼리(WHERE) | 활성 IT 지원 사용자에게 할당된 인시던트 찾기 | 번호, short_description assigned_to 인시던트 선택 위치 (SELECT assigned_to sys_id FROM sys_user WHERE department = 'IT Support' AND active = 1) AND state IN (1,2,3); |
| 절 | 조합 | 긴급 작업 목록에 대한 높은 우선순위 인시던트와 미할당 인시던트 결합 | SELECT 번호, 'P1-Critical' 이유, assigned_to, 우선 순위, 우선 순위 = 1 및 (1,2,3)의 상태 FROM 인시던트로 SELECT 번호, 이유로 '미할당', assigned_to, 우선 순위, assigned_to가 NULL이고 (1,2,3)의 상태인 인시던트의 상태 FROM; |
| 날짜/시간 FN | date_part | 이력 추세에 대한 연도별 인시던트 생성 패턴 분석 | date_part('year', opened_at) AS 연도, COUNT(*) 인시던트의 인시던트 그룹 기준 date_part('year', opened_at) 정렬 기준date_part('year', opened_at); |
| 날짜/시간 FN | date_trunc | 임원용 월간 추세 보고서의 월별 인시던트 그룹화 | date_trunc('월', opened_at)를 월로, 카운트(*)를 합계로 인시던트 그룹 월별 순서로 선택합니다. |
| 숫자 FN | ABS | 정규화를 위한 우선순위 값 간의 절대 차이 계산 | 숫자 선택, ABS(우선순위 - 3) (1,2,3)의 상태가 있는 인시던트에서 priority_deviation; |
| 숫자 FN | 천장 | 가중 점수 계산을 위한 우선순위 분할 반올림 | SELECT number, priority, CEILING(CAST(sys_mod_count as FLOAT) / 3 update_score) AS FROM FROM incident WHERE state IN (1,2,3); |
| 숫자 FN | 층 | 기준선 메트릭에 대한 수정 횟수의 최저 평균 계산 | assignment_group, FLOOR(AVG(CAST(sys_mod_count AS FLOAT)))를 인시던트 그룹에서 avg_updates assignment_group; |
| 연산자 | 안에 | 임원 대시보드의 비즈니스에 중요한 범주의 인시던트 필터링 | SELECT 번호, 범주, 우선순위, 상태 FROM incident WHERE 범주 IN ("네트워크", "데이터베이스", "보안", "애플리케이션"); |
| 연산자 | NULL이 아닌지 여부 | CMDB 분석을 위해 구성 항목이 할당된 인시던트 찾기 | cmdb_ci이 NULL이 아닌 인시던트의 번호, cmdb_ci, 범주 assignment_group 선택합니다. |
| 연산자 | 좋아요 | 셀프 서비스 분석을 위해 암호 재설정 및 액세스 관련 인시던트를 검색합니다 | "%password%"와 같은 short_description 또는 "%login%"와 같은 short_description 인시던트의 번호, short_description caller_id 선택합니다. |
| 연산자 | 사이가 아님 | 데이터 품질 감사에 대해 특이한 우선순위 값이 있는 인시던트 식별 | 우선순위가 2에서 4 사이가 아닌 인시던트에서 번호, 우선순위 short_description 선택합니다. |
| ServiceNow 특정 FN | DV | 보고서에 사람이 읽을 수 있는 참조 필드 값 표시 | SELECT 번호, DV(assignment_group) AS group_name, DV(assigned_to) AS assignee_name (1,2,3)의 상태가 있는 인시던트에서; |
| 문자열 FN | CONCAT_WS | 외부 티켓팅 시스템에 대한 서식이 지정된 인시던트 요약 생성 | SELECT concat_ws(' - ', number, category, short_description) as formatted_summary FROM incident WHERE state = 7; |
| 문자열 FN | 하한 | 대/소문자를 구분하지 않는 그룹화 및 분석을 위한 범주 이름 표준화 | 인시던트에서 category_normalized 하한(범주)을 선택합니다. |
| 문자열 FN | 바꾸기 | 외부 시스템 통합을 위해 인시던트 번호 변환 | 상태 = 7인 인시던트에서 short_description external_id으로 REPLACE(NUMBER, 'INC', 'TICKET-')를 선택합니다. |
| 문자열 FN | 서브스트림 | 분류 및 보고를 위한 인시던트 프리픽스 추출 | SELECT number, SUBSTR(number, 1, 3) As prefix, SUBSTR(number, 4, 20) AS SEQUENCE FROM incident; |
| 문자열 FN | 다듬기 | 데이터 품질 향상을 위한 설명의 공백 정리 | SELECT NUMBER, TRIM(short_description) clean_description 인시던트에서 short_description이 NULL이 아닌 경우; |
| 윈도우 FN | 순위() | 가장 자주 수정된 티켓을 식별하기 위해 업데이트 횟수로 인시던트 순위 지정 | assignment_group가 NULL이 아닌 인시던트에서 modification_rank NUMBER, sys_mod_count, assignment_group, RANK() 오버(내림차순 sys_mod_count정렬) 선택합니다. |