WHERE句

WHERE句は、式の入力レコードをフィルタリングするときに使用します。

EQLでは、WHEREおよびHAVINGという2つのフィルタリング・オプションがあります。WHERE句の構文は次のとおりです。
WHERE <BooleanExpression>
WHERE句は、次のような任意のブール式とともに使用できます。
WHERE句はソース(コーパスなど)内で属性を探すため、WHERE句内で別名属性(SELECT句からの)は使用できません。つまり、次の例
RETURN results AS
 SELECT
    WineID AS id,
    Score AS scores
 WHERE id > 5
 ORDER BY scores
は無効で、次のエラー・メッセージを返します。
In statement "results": In WHERE clause: This corpus does not have an attribute named "id" - Location:5:9-5:10

集計関数がWHERE句とともに使用されている場合は、ブール式をカッコで囲む必要があります。集計関数の一覧は、「集計関数」を参照してください。

この例では、West地域の売上金額のみを計算します。次に、その結果のうち、売上が$10,000以上の販売員のみを返します。
RETURN Reps AS
SELECT SUM(Amount) AS SalesTotal
WHERE Region = 'West'
GROUP BY SalesRep
HAVING SalesTotal > 10000
次の例では、1つの文に2つの式が含まれています。最初の式ではすべてのレコードの合計を計算し、2番目の式ではある1人の販売員の合計を計算します。
RETURN QuarterTotals AS SELECT 
SUM(Amount) As SalesTotal, 
SUM(Amount) WHERE (SalesRep = 'Juan Smith') AS JuanTotal
GROUP BY Quarter

この結果として、全体の売上合計と、Juan Smithの売上合計の両方が四半期別に返されます。WHERE句の中のブール式がカッコで囲まれているのは、集計式とともに使用されているからです(この例ではSUM)。

2番目の例では、集計ごとのWHERE句の使用方法も示しています。
SUM(Amount) WHERE (SalesRep = 'Juan Smith') AS JuanTotal

集計ごとのWHEREフィルタの詳細は、「集計ごとのフィルタ」を参照してください。