EQLでは、セットによるグルーピングがサポートされています。
GROUP BY句の標準のグルーピング構文では、EQLはセットの等価性によりグルーピングを行います(つまり、セットが等価である行は同じグループに配置されます)。
RETURN results AS SELECT SET(WineID) AS IDs GROUP BY Body
Body IDs ------------------------------------------------------------ | { Silky, Tannins } | { 10, 12, 13, 16, 18, 3, 5, 7, 9 } | | { Robust } | { 23, 24, 6, 8 } | | { Robust, Tannins } | { 11, 4 } | | { Firm, Robust } | { 22, 25 } | | { Fresh, Robust } | { 19 } | | { Supple } | { 14, 15 } | ------------------------------------------------------------
GROUP BYを使用する際に、NULL値と空のセットをコーパスから選択するとそれらは無視されることに注意してください(この問合せのケースです)。このため、レコード1、2、17、20および21は、Bodyが割り当てられていないため返されません(これらのレコードに対しては空のセットが返されます)。
GROUP BY句の詳細は、「GROUP BYの指定」を参照してください。
RETURN results AS SELECT SET(WineID) AS IDs GROUP BY MEMBERS(Body) AS BodyType
BodyType IDs ------------------------------------------------------- | Fresh | { 19 } | | Firm | { 22, 25 } | | Supple | { 14, 15 } | | 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、2、17、20および21は、Body属性が空のセットであるため返されません。
MEMBERSの詳細は、「MEMBERS拡張」を参照してください。