サポートされている SQL 関数
インシデントデータのクエリと分析のために SQL API で使用される一般的な SQL 関数。
ServiceNow は、インシデントテーブルなどのテーブル内のデータをクエリおよび分析するためのさまざまな SQL 関数をサポートしています。この省略されたリストは、インシデント管理シナリオに焦点を当てたサンプルユースケースとクエリとともに、カテゴリ別に整理された一般的な SQL 関数をカバーしています。
注:
現在、クエリエンジンは INNER 結合と LEFT OUTER 結合のみをサポートしています。
| カテゴリ | 関数名 | サンプルユースケース | サンプルクエリ |
|---|---|---|---|
| アグリゲート Fn | AVG | 解決済みインシデントの平均優先度レベルを計算して、重大度の傾向を測定します | SELECT AVG(CAST(priority AS FLOAT)) AS THE avg_priority_level WHERE state = 7; |
| アグリゲート Fn | 総数 | 優先度レベル別のオープン中のインシデントの合計をカウントします | 優先度を選択し、インシデントからincident_countとしてカウント (*) WHERE state IN (1,2,3) GROUP BY priority; |
| アグリゲート Fn | 合計 | すべての P1 インシデントにわたる更新の合計数を計算します | 優先度 = 1 のインシデントからtotal_updatesとして SUM(sys_mod_count) を選択します。 |
| アグリゲート Fn | MAX | オープン中のインシデントで最も優先度の高い値を検索する | SELECT MAX(priority) highest_priority as FROM incident WHERE state in (1,2,3); |
| 条項 | CASE | ダッシュボード可視化のために優先度別にインシデントを分類 | 番号を選択、ケース 優先度 = 1 の場合、次に「重大」 優先度 = 2 の場合、次に「高」の場合、優先度 = 3 の場合、次に「中」の場合、それ以外の場合は「低」 終了方法 priority_label FROM incident WHERE ステータス (1,2,3); |
| 条項 | トップ | 品質レビューで最も変更されたインシデントの上位 10 件を特定します | インシデントからsys_mod_count上位 10 件の番号を選択します。 sys_mod_count DESC による注文。 |
| 条項 | グループ | 傾向のためにカテゴリ別にインシデントボリュームを分析 | SELECT category, COUNT(*) AS COUNT FROM incident WHERE state IN (1,2,3) GROUP BY category; |
| 条項 | 次を含む | キャパシティ計画立案のオープンインシデントが 50 件を超えるアサイン先グループを検索します | COUNT(*) が 50 >assignment_group、ステータスが (1,2,3) のインシデントからopen_countとして assignment_group 、COUNT(*) を選択します。 |
| 条項 | 左結合 | チームパフォーマンスレポート用にアサインされたユーザーの詳細を含むインシデントをリスト | SELECT i.number, i.priority, u.name AS assigned_to, u.department FROM incident I LEFT JOIN sys_user u ON i.assigned_to = u.sys_id WHERE i.state IN (1,2,3); |
| 条項 | 昇順 | エスカレーションレビューのオープン日別に最も古いインシデントを取得 | インシデントから番号、short_description、opened_atを選択します (1,2,3) のステータスを opened_at ASC 順に選択します。 |
| 条項 | DISTINCT | 最近のインシデントからカテゴリの一意のリストを取得 | SELECT DISTINCT CATEGORY FROM incident WHERE state IN (1,2,3); |
| 条項 | サブクエリ (送信元) | アクティブなアサインからユーザーごとの平均インシデント数を計算 | avg_per_userとして AVG(incident_count) を選択 (選択 assigned_to、カウント (*) assigned_toが NULL でないインシデントからincident_countグループ化 assigned_to) をuser_statsとして選択します。 |
| 条項 | サブクエリ (WHERE) | アクティブな IT サポートユーザーにアサインされているインシデントを検索する | SELECT number, short_description, assigned_to FROM incident WHERE assigned_to IN (SELECT sys_id FROM sys_user WHERE department = 'IT Support' AND active = 1) AND state IN (1,2,3); |
| 条項 | ユニオン | 緊急アクションリストの高優先度のインシデントと未アサインのインシデントを組み合わせる | SELECT number, 'P1-Critical' as reason, assigned_to, priority, state FROM incident WHERE priority = 1 AND state IN (1,2,3) UNION SELECT number, 'Unassigned' as reason, assigned_to, priority, state FROM incident WHERE assigned_to IS NULL AND state IN (1,2,3); |
| 日時 FN | date_part | インシデント作成パターンを年別に分析して、履歴傾向を得る | 年として date_part('year', opened_at) を、インシデントグループからインシデントとしてカウント (*) を選択 date_part('year', opened_at) 順番 date_part('year', opened_at); |
| 日時 FN | date_trunc | エグゼクティブ月次傾向レポートの月別インシデントグループ化 | 月として date_trunc('month', opened_at) を選択し、インシデントから合計としてカウント(*) を選択 月別にグループ化 月別に注文します。 |
| 数値 FN | ABS樹脂製 | 正規化の優先度値間の絶対差を計算します | SELECT number, ABS(priority - 3) as priority_deviation FROM incident WHERE state IN (1,2,3); |
| 数値 FN | 天井関数 | 重み付けスコア計算の優先度分割を切り上げます | SELECT number, priority, CEILING(CAST(sys_mod_count AS FLOAT) / 3) AS update_score FROM incident WHERE state IN (1,2,3); |
| 数値 FN | フロア | ベースラインメトリクスの変更数の最低限を計算 | assignment_group、FLOOR(AVG(CAST(sys_mod_count AS FLOAT))) をインシデントグループからavg_updatesとして選択 assignment_group; |
| 演算子 | IN | エグゼクティブダッシュボードのビジネスクリティカルカテゴリのインシデントをフィルター | SELECT number, category, priority, state FROM incident WHERE category IN ('Network', 'Database', 'Security', 'Application'); |
| 演算子 | 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 number、DV(assignment_group) AS group_name、DV(assigned_to) FROM INCIDENT WHERE state in (1,2,3) AS assignee_name; |
| 文字列 FN | CONCAT_WS | 外部チケットシステム用の書式設定済みインシデントサマリーの作成 | SELECT concat_ws(' - ', number, category, short_description) as formatted_summary FROM incident WHERE state = 7; |
| 文字列 FN | 小文字 | 大文字と小文字を区別しないグループ化と分析のためにカテゴリ名を標準化します | インシデントからcategory_normalizedとして LOWER(CATEGORY) を選択します。 |
| 文字列 FN | REPLACE | 外部システム統合のためのインシデント番号の変換 | SELECT REPLACE(number, 'INC', 'TICKET-') AS external_id, short_description FROM INCIDENT WHERE State = 7; |
| 文字列 FN | サブストリーム | 分類とレポートのためのインシデントプリフィックスを抽出 | SELECT number, SUBSTR(number, 1, 3) AS prefix, SUBSTR(number, 4, 20) AS sequence FROM incident; |
| 文字列 FN | トリミング | データ品質向上のために説明の空白を消去する | 番号を選択し、short_descriptionが NULL でないインシデントからclean_descriptionとして TRIM(short_description) を選択します。 |
| Windows FN | ランク () | 更新の数でインシデントをランク付けし、最も頻繁に変更されるチケットを特定します | assignment_groupが NULL でないインシデントからmodification_rankとして、NUMBER、sys_mod_count、assignment_group、RANK() オーバー (sys_mod_count DESC 順) を選択します。 |