では、どうやって関数の値に条件付けを行うんでしょうか。例えば、売上が $1,500以上の店だけを知りたいことにします。 そこで、 WHERE コマンドが使えないので、どうしたらよいでしょうか。幸いにも、SQL の中に HAVING といったコマンドがあり、そのコマンドでこの目標を達成できます。通常、 HAVING 句は、 SQL 文の最後にあります。 HAVING 句が含まれるSQL の中に、 GROUP BY 句が含まれるとは限りません。 HAVING のプログラミングは次の通りになります。
SELECT "フィールド1", SUM("フィールド2")
FROM "テーブル名"
GROUP BY "フィールド1"
HAVING (関数条件)
注意: GROUP BY 句が必ずしも必要なものとは限りません。
Store_Information テーブルの例では、
Store_Information テーブル
| store_name |
Sales |
Date |
| Los Angeles |
$1500 |
Jan-05-1999 |
| San Diego |
$250 |
Jan-07-1999 |
| Los Angeles |
$300 |
Jan-08-1999 |
| Boston |
$700 |
Jan-08-1999 |
を入力すると、
SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500
の結果ができます。
| store_name |
|
SUM(Sales) |
| Los Angeles |
|
$1800
|