プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

FROM句

レコード・ソースを指定するには、文書にFROM句を含める必要があります。

文ではFROM句が必須で、状態名や前に定義された文など、EQL文のレコードのソースを指定します。

FROM構文は、次のとおりです:

FROM <recSource> [alias]
<recSource>は、次の場所に配置できます:
  • 事前に定義された文の名前(文がDEFINERETURNか)。
  • 都道府県名。 ただし、FROMではコレクション名は直接サポートされませんが、実際にはこの状態にはデータ・セットのコレクション名およびDgraphデータベースが含まれているためです。
  • JOINまたはCROSS JOINのいずれか。

問合せでFROM句を省略すると、EQLパーサーでエラーが返されます。

事前に定義された文でのFROMの使用

レコード・ソースとして異なる文の結果を使用できます。 次の例では、最初の文(RepQuartersという名前)で四半期および営業担当者ごとの合計営業トランザクション数が計算されます。 次に、営業担当者ごとの平均トランザクション数をコンピュートするために、後続の文書(「四半期」という名前)により、これらの結果が四半期別にグループ化されます:
DEFINE RepQuarters AS
SELECT COUNT(TransId) AS NumTrans
FROM SaleState
GROUP BY SalesRep, Quarter;

RETURN Quarters AS
SELECT AVG(NumTrans) AS AvgTransPerRep
FROM RepQuarters
GROUP BY Quarter
RepQuarters文によってレコードのリストが生成されます。 各レコードには、{ SalesRep, Quarter, NumTrans }の属性が含まれます。 次に例を示します。
{ J. Smith, 11Q1, 10 }
{ J. Smith, 11Q2, 3 }
{ F. Jackson, 10Q4, 10 }
...
この後、「四半期」文によってRepQuarters文の結果を使用し、{ Quarter, AvgTransPerRep }属性を持つリストを生成します。 次に例を示します。
{ 10Q4, 10 }
{ 11Q1, 4.5 }
{ 11Q2, 6 }
...

FROM句の状態名

EQL FROM句には、次の構文で状態名を指定できます:
FROM <statename>[_FILTERED | _UNFILTERED | _ALL]
説明:
  • 「名前の変更」_FILTEREDは、すべてのフィルタ(つまり、問合せの状態にあるすべてのフィルタ)が適用された状態を表します。
  • 「名前の変更」(フィルタ修飾子のない状態名のみを使用)は、「名前の変更」_FILTEREDのシノニムです。
  • 「名前の変更」_UNFILTEREDは、セキュリティ・フィルタが適用された状態を表しています。
  • 「名前の変更」_allは、「名前の変更」_UNFILTEREDの同義語です。
例として、EQLQueryタイプを使用する次の単純な会話サービス問合せがあるとします:
<Request>
   <Language>en</Language>
   <State>
      <Name>WineState</Name>
      <CollectionName>Wines</CollectionName>
      <DataSourceFilter Id="DataFltr">
        <filterString>WineType <> 'Red'</filterString>
      </DataSourceFilter>
      <SelectionFilter Id="SecFltr">
        <filterString>Price > 25</filterString>
      </SelectionFilter>
   </State>
   <EQLConfig Id="WineRecs">
      <EQLQueryString>
        RETURN results AS
        SELECT Price AS prices
        FROM WineState
        GROUP BY prices
      </EQLQueryString>
   </EQLConfig>
</Request>
問合せは次のように機能します:
  1. DataSourceFilterフィルタ(セキュリティ・フィルタ)では、WineType=Red割当のレコードが最初に削除されます。 小規模のデータ・セットでは、11レコードのみがフィルタをパスします。 (WineTypeは単一割当てである必要がありますが、そうでないと問合せは失敗します)。
  2. 次に、SelectionFilterフィルタにより、価格割当が$ 25以上のレコードが選択されます。7つ以上のレコードが(前の11レコードから)フィルタで除外され、4レコードが残ります。
  3. EQL文のFROM句は、WineStateという名前の状態を参照します。

したがって、EQL文のFROM句はWineStateという状態を参照するため、状態からの両方のフィルタが適用され、4つのレコードが返されます。