Funções SQL compatíveis
Funções SQL comuns usadas em API de SQL para consultar e analisar dados do incidente.
ServiceNow Oferece suporte a uma variedade de funções SQL para consultar e analisar dados em tabelas como a tabela de incidentes. Esta lista resumida abrange funções SQL comuns organizadas por categoria, com exemplos de casos de uso e consultas focadas em cenários de gestão de incidentes.
Nota:
Atualmente, o mecanismo de consulta oferece suporte somente a junções INTERNAS e EXTERNAS ESQUERDAS.
| Categoria | Nome da Função | Exemplo de caso de uso | Consulta de amostra |
|---|---|---|---|
| Fn agregado | MÉDIA | Calcule o nível de prioridade médio de incidentes resolvidos para medir as tendências de gravidade | SELECIONE AVG(CAST(priority AS FLOAT)) COMO avg_priority_level DO incidente EM QUE o estado é 7; |
| Fn agregado | CONTAGEM | Contar o total de incidentes em aberto por nível de prioridade | SELECIONE prioridade, COUNT (*) COMO incident_count DO incidente EM QUE o estado EM (1,2,3) GRUPO POR prioridade; |
| Fn agregado | SOMA | Calcule o número total de atualizações em todos os incidentes P1 | SELECIONE SOMA(sys_mod_count) COMO total_updates DO incidente EM QUE a prioridade é 1; |
| Fn agregado | MÁX | Encontre o valor de prioridade mais alta em Incidentes em aberto | SELECIONE MAX(priority) COMO highest_priority DO incidente EM QUE estado EM (1,2,3); |
| Cláusulas | CASO | Categorize incidentes por prioridade para visualização do painel | SELECIONE o número, CASO QUANDO a prioridade for 1, "Crítica" QUANDO a prioridade for 2, "Alta" QUANDO a prioridade for 3, "Média" OU "Baixa" TERMINAR COMO priority_label DO incidente EM QUE estado EM (1,2,3); |
| Cláusulas | SUPERIOR | Identifique os 10 incidentes mais modificados para revisão de qualidade | SELECIONE os 10 PRINCIPAIS números, sys_mod_count DO PEDIDO DE incidente POR sys_mod_count DESC; |
| Cláusulas | AGRUPAR POR | Analise o volume de incidentes por categoria para tendências | SELECIONE categoria, COUNT(*) COMO contagem DO incidente EM QUE o estado EM (1,2,3) AGRUPAR POR categoria; |
| Cláusulas | TENDO | Encontre grupos de atribuição com mais de 50 incidentes em aberto para planejamento de capacidade | SELECIONE assignment_group , COUNT(*) COMO open_count DO incidente EM QUE estado EM (1,2,3) GRUPO POR assignment_group COM COUNT(*) > 50; |
| Cláusulas | JUNÇÃO À ESQUERDA | Listar incidentes com detalhes de usuário atribuídos para o relatório de desempenho da equipe | EM i.number, i.priority, u.name COMO assigned_to, u.department DO incidente que DEIXEI, JOIN sys_user u EM i.assigned_to: U.sys_id EM QUE i.state EM (1,2,3); |
| Cláusulas | ORDENAR POR ASC | Recupere incidentes mais antigos por data de abertura para revisão de escalação | SELECIONE number, short_description, opened_at FROM incident WHERE state IN (1,2,3) ORDER BY opened_at asc; |
| Cláusulas | DISTINCT | Obtenha uma lista exclusiva de categorias de incidentes recentes | SELECIONE uma categoria DISTINTA DO incidente EM QUE o estado ESTÁ EM (1,2,3); |
| Cláusulas | SUBCONSULTA (DE) | Calcule a contagem média de incidentes por usuário a partir de atribuições ativas | SELECIONE AVG(incident_count) COMO avg_per_user FROM (SELECIONE assigned_to, COUNT(*) COMO incident_count DO incidente EM QUE assigned_to NÃO É NULL GROUP BY assigned_to) COMO user_stats; |
| Cláusulas | SUBCONSULTA (ONDE) | Localizar incidentes atribuídos a usuários ativos de suporte de TI | SELECIONE number, short_description, assigned_to DO incidente EM QUE assigned_to EM (SELECIONE sys_id DE sys_user EM QUE departamento é "Suporte DE TI" E ativo é 1) E estado EM (1,2,3); |
| Cláusulas | SINDICATO | Combine incidentes de alta prioridade e não atribuídos para a lista de ações urgentes | SELECIONE número, "P1-Crítico" COMO motivo, assigned_to, prioridade, estado DO incidente EM QUE a prioridade é igual a 1 E o estado EM (1,2,3) número de SELEÇÃO DE UNIÃO, "Não atribuído" COMO motivo, assigned_to, prioridade, estado DO incidente EM QUE assigned_to É NULL E estado EM (1,2,3); |
| Fn de data/hora | date_part | Analise padrões de criação de incidentes por ano para tendências históricas | SELECIONE date_part('year', opened_at) COMO year, COUNT(*) COMO incidentes DO GRUPO de incidentes POR date_part('year', opened_at) ORDER BY date_part('year', opened_at); |
| Fn de data/hora | data_trunc | Agrupar incidentes por mês para o relatório de tendências mensal executivo | SELECIONE DATE_trunc('month', opened_at) COMO mês, COUNT(*) COMO total DO GRUPO de incidentes POR mês ORDEM POR mês; |
| Fn numérico | ABS | Calcule a diferença absoluta entre os valores de prioridade para normalização | SELECIONE o número, ABS (prioridade - 3) COMO priority_desvio DO incidente EM QUE o estado EM (1,2,3); |
| Fn numérico | TETO | Arredonde a divisão de prioridade para cálculos de pontuação ponderada | SELECIONE número, prioridade, TETO(CAST(sys_mod_count AS FLOAT) / 3) COMO update_score DO incidente EM QUE estado EM (1,2,3); |
| Fn numérico | PISO | Calcule a média de piso de contagens de modificação para métricas de linha de base | SELECIONE assignment_group, FLOOR(AVG(CAST(sys_mod_count AS FLOAT))) COMO avg_updates DO GRUPO de incidentes POR assignment_group; |
| Operadores | IN | Filtre incidentes para categorias críticas para os negócios para o painel executivo | SELECIONE número, categoria, prioridade, estado DO incidente EM QUE a categoria ESTÁ ("Rede", "Banco de dados", "Segurança", "Aplicação"); |
| Operadores | NÃO É NULO | Localizar incidentes com atribuições de item de configuração para análise do CMDB | SELECIONE number, cmdb_ci, category, assignment_group DO incidente EM QUE cmdb_ci NÃO É NULL; |
| Operadores | GOSTO | PESQUISE incidentes relacionados a acesso e redefinição de senha para análise de autoatendimento | SELECIONE number, short_description, caller_id DO incidente EM QUE short_description COMO '%password%' OU short_description COMO '%login%'; |
| Operadores | NÃO ESTÁ ENTRE | Identifique incidentes com valores de prioridade incomuns para auditoria de qualidade de dados | SELECIONE número, prioridade, short_description DO incidente EM QUE a prioridade NÃO ESTÁ ENTRE 2 E 4; |
| ServiceNow Fn específico | DV | Exiba valores de campos de referência legíveis em relatórios | SELECIONE Number, dv(assignment_group) COMO group_name, dv(assigned_to) COMO assignee_name DO incidente EM QUE estado EM (1,2,3); |
| Cadeia de caracteres fn | CONCAT_WS | Crie resumos de incidentes formatados para sistemas de tíquetes externos | SELECIONE concat_ws(' - ', number, category, short_description) COMO formatted_summary DO incidente EM QUE o estado é 7; |
| Cadeia de caracteres fn | INFERIOR | Padronize nomes de categoria para agrupamento e análise que não diferenciam maiúsculas de minúsculas | SELECIONE LOWER (category) COMO category_normalized DO incidente; |
| Cadeia de caracteres fn | SUBSTITUIR | Transformar números de incidentes para integração de sistema externo | SELECIONE REPLACE (number, "inc", "TICKET-") COMO external_id, short_description DO incidente EM QUE o estado é 7; |
| Cadeia de caracteres fn | SUBSTR | Extraia o prefixo do incidente para categorização e emissão de relatórios | SELECIONE NUMBER, SUBSTR(NUMBER, 1, 3) COMO PREFIX, SUBSTR(NUMBER, 4, 20) COMO sequência DO incidente; |
| Cadeia de caracteres fn | APARE | Limpe o espaço em branco das descrições para melhorar a qualidade dos dados | SELECIONE NUMBER, TRIM(short_description) COMO clean_description DO incidente EM QUE short_description NÃO É NULL; |
| Windows fn | CLASSIFICAÇÃO() | Classifique incidentes por número de atualizações para identificar tíquetes modificados com mais frequência | SELECIONE number, sys_mod_count, assignment_group, RANK() OVER (ORDENAR POR sys_mod_count DESC) COMO modify_rank DO incidente EM QUE assignment_group NÃO É NULL; |