Cisco Unified Intelligence Center SQL 構文
このトピックでは、Cisco Unified Intelligence Center での SQL 構文の使用について、次の情報を提供します。
-
ガイドライン
-
フィールドおよびパラメータでサポートされるデータ型
-
SQL パーサーの特殊キーワード(サンプルクエリ付き)
ガイドライン
-
SQL クエリではコメントを使用できません。
-
データベース クエリには、SELECT ステートメントの後に 1 つ以上のフィールドが含まれている必要があります。例:
SELECT [fields] FROM [tables] WHERE [...]
。次のサンプル クエリ
select CallTypeID, TimeZone from Call_Type_Interval where TimeZone = 240
により、フィールド CallTypeID および TimeZone が作成されます。 -
SELECT* は使用できないため、SQL クエリで返されるすべてのフィールドを列挙する必要があります。
-
匿名ブロックは、結果セットを返す有効な SQL ステートメントである必要があります。:「paramName」のように名前が付けられたパラメータを組み込むことができます。ここで、パラメータ名の最初の文字は必ずコロンであり、「paramName」はパラメータ名の残りの部分です。
ユーザによって入力されたパラメータ値は、対応するパラメータ名の代わりに、匿名ブロックの本文に代入されます。
-
Informix と SQL Server のストアド プロシージャがサポートされています。ストアド プロシージャは結果セットを返す必要があります。ストアド プロシージャの場合、パラメータを使用して、データベースにストアド プロシージャ コールを行って結果セットを取得する際に値が渡されます。
-
Where 句で Datediff() 関数を使用すると、パフォーマンスの問題が発生します。
-
SQL クエリに名前を持たないフィールドが存在することはあり得ません。各フィールドにはエイリアスが必要です。
-
エイリアス名は固有である必要があります。
-
Informix ストアド プロシージャには返されるステートメントが含まれている必要があります。また、返されるステートメントの各データ型には、対応する別名を文字 AS を付けて指定する必要があります。
たとえば、CHAR(32) AS returnID、CHAR(32) AS returnName、INTEGER AS returnRefreshrate、BOOLEAN as returnHistorical を返します。CHAR(32)、CHAR(32)、INTEGER、BOOLEAN を返すのではありません。エイリアスを指定しなければ、フィールド名は単に fieldN になります。ここで、N は field1、field2 など、名前のないフィールドのインデックスです。
-
Informix ストアド プロシージャのパラメータ名は、先頭にアットマークが付きます(@param1、@param2 ...)。
フィールドおよびパラメータでサポートされるデータ型
-
BIGINT、DECIMAL、DOUBLE、FLOAT、INTEGER、NUMERIC、SMALLINT、REAL、TINYINT
-
CHAR、LONGNVARCHAR、LONGVARCHAR、NCHAR、NVARCHAR、VARCHAR
-
日時
-
BOOLEAN、BIT
SQL パーサーの特殊キーワード(サンプル クエリ付き)
-
ALL(SQL Server または Informix):SELECT ALL CallTypeID from Call_Type_Interval
-
DISTINCT(SQL Server または Informix):SELECT DISTINCT CallTypeID from Call_Type_Interval
-
TOP(SQL Server):SELECT TOP 5 CallTypeID from Call_Type_Interval
-
FIRST(Informix):SELECT FIRST 5 ID FROM CUICDATASETINFO
-
UNIQUE(Informix):SELECT UNIQUE NAME FROM CUICGRID
Informix と SQL Server の両方に対して、Unified Intelligence Center でサポートされている集計関数は、SUM、COUNT、MIN、MAX、および AVG です。
レポート定義フィールドが集計関数(たとえば、sum(CallsHandled))であり、そのフィールドがキー基準フィールドまたは詳細フィルタである場合、サポートされる構文は次のとおりです。
SELECT (fields)FROM [tables]
WHERE [...]
GROUP BY [...]
HAVING [...] optional
ORDER BY [...] optional
サンプル クエリ:
select CallTypeID, TimeZone, sum(CallsHandled) as total, avg(CallsHandled) as average
from Call_Type_Interval
where TimeZone = 240
group by CallTypeID, TimeZone
having sum(CallsHandled) in(3, 5, 13) and avg(CallsHandled) > 0
order by CallTypeID