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

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

前
次
機械翻訳について

セット別のグループ化

EQLでは、セットごとのグループ化がサポートされます。

GROUP BYの使用

GROUP BY句の通常のグループ化構文では、EQLのグループは等価を設定してグループ化します(つまり、これらのセットが等しい行は同じグループに配置されます)。

たとえば、本文が複数割当属性であり、すべてのレコードに少なくとも1つの本文割当(レコード1、2、17、20および21を除く)があるデータ・セットがあるとします。 この問合せは、そのデータ・セットに対して行われます:
RETURN results AS
SELECT
  SET(WineID) AS IDs
FROM WineState
GROUP BY Body
この文の結果は次のようになります:
Body                      IDs
------------------------------------------------------------
|                     | { 1, 17, 2, 20, 21 }               |
| { Fresh, Robust }   | { 19 }                             |
| { Supple }          | { 14, 15 }                         |
| { Silky, Tannins }  | { 10, 12, 13, 16, 18, 3, 5, 7, 9 } |
| { Firm, Robust }    | { 22, 25 }                         |
| { Robust }          | { 23, 24, 6, 8 }                   |
| { Robust, Tannins } | { 11, 4 }                          |
------------------------------------------------------------

GROUP BYを使用すると、EQLではグループ・キーが空またはNULL値である行が保存されることに注意してください。 したがって、レコード1、2、17、20および21は、本文の割当てがない場合でも返されます(これらのレコードに空のセットが返されるため)。

GROUP BY句の詳細は、「GROUP/GROUP BY句」を参照してください。

GROUP BY MEMBERSの使用

GROUP BYMEMBERS拡張機能では、セットのメンバーごとにグループ化できます。 MEMBERSの使用方法を説明するために、前述の例を次のように書き直すことができます:
RETURN results AS
SELECT
  SET(WineID) AS IDs
FROM WineState
GROUP BY MEMBERS(Body) AS BodyType
次のような結果になります:
BodyType      IDs
-------------------------------------------------------
| Supple  | { 14, 15 }                                |
| Firm    | { 22, 25 }                                |
| Fresh   | { 19 }                                    |
| Robust  | { 11, 19, 22, 23, 24, 25, 4, 6, 8 }       |
| Tannins | { 10, 11, 12, 13, 16, 18, 3, 4, 5, 7, 9 } |
| Silky   | { 10, 12, 13, 16, 18, 3, 5, 7, 9 }        |
|         | { 1, 17, 2, 20, 21 }                                |
-------------------------------------------------------

前述の例と同様に、レコード1、2、17、20および21が返されます。

MEMBERSの詳細は、「MEMBERS拡張」で入手できます。