最終更新日:2026年6月22日
ds data-processing sql
まず結論
WHERE句とは、SQLで条件に一致する行だけを対象にするための構文です。
DS検定では、次のように切り分けると判断しやすくなります。
JOIN:テーブルを結合するWHERE:行を条件で絞り込むHAVING:集計後のグループを絞り込む
特に、WHEREは「データを表示するための条件」だけでなく、UPDATE や DELETE でどの行を対象にするかを指定する役割もあります。
直感的な説明
例えば、売上データが次のようにあるとします。
| customer | item | price |
|---|---|---|
| 田中 | ノートPC | 120000 |
| 佐藤 | マウス | 3000 |
| 鈴木 | キーボード | 8000 |
この中から「1万円以上の商品だけ見たい」とき、全件を見てから人間が探すのではなく、SQL側で条件を指定します。
SELECT *
FROM sales
WHERE price >= 10000;
結果は次のようになります。
| customer | item | price |
|---|---|---|
| 田中 | ノートPC | 120000 |
つまりWHERE句は、分析に必要な行だけを取り出すフィルターです。
定義・仕組み
WHERE句は、SQLで行を絞り込む条件を指定する部分です。
SELECT 列名
FROM テーブル名
WHERE 条件;
例えば、東京の顧客だけを取得するSQLは次の通りです。
SELECT name
FROM customers
WHERE city = 'Tokyo';
よく使う条件演算子は次の通りです。
| 演算子 | 意味 |
|---|---|
= |
等しい |
<> |
等しくない |
> |
より大きい |
< |
より小さい |
>= |
以上 |
<= |
以下 |
複数条件を組み合わせる場合は、AND や OR を使います。
SELECT *
FROM sales
WHERE price >= 1000
AND price < 10000;
DS検定では、SQLを完全に暗記するよりも、条件が行に対して働くのか、集計後の結果に対して働くのかを見分けることが重要です。
どんな場面で使う?
WHERE句は、データ分析の前処理や確認作業で頻繁に使います。
売上分析
- 高額商品の行だけを抽出する
- 特定商品の売上だけを確認する
- 期間を絞って月次・年次の分析対象を作る
顧客分析
- 特定地域の顧客だけを取り出す
- 年齢や会員ランクで対象を絞る
- キャンペーン対象者の候補を抽出する
ログ分析
- 特定日時のログだけを見る
- エラーが発生した行だけを抽出する
- あるユーザーIDの操作履歴を確認する
実務では、WHERE句の条件を間違えると「分析対象が多すぎる」「必要な行が消える」「更新対象を誤る」といったミスにつながります。
よくある誤解・混同
① JOINとWHEREを混同する
| SQL | 役割 |
|---|---|
JOIN |
テーブルを結合する |
WHERE |
条件に合う行を残す |
JOIN は表をつなぐ操作、WHERE は結合後または取得対象の行を絞る操作です。
DS検定で「テーブル同士を関連付ける」とあればJOIN、「条件に一致する行を抽出する」とあればWHEREと判断します。
② WHEREとHAVINGを混同する
| 句 | 絞り込む対象 |
|---|---|
WHERE |
集計前の行 |
HAVING |
GROUP BYで集計した後のグループ |
例えば「価格が1000円以上の明細行を抽出する」はWHEREですが、「売上合計が10万円以上の店舗を残す」はHAVINGが自然です。
③ WHEREはデータを変更する句だと思う
WHERE自体は「変更処理」ではありません。対象行を指定する条件です。
ただし、UPDATE や DELETE と一緒に使うと、更新・削除される行を決めます。
UPDATE customers
SET rank = 'gold'
WHERE total_amount >= 100000;
このため実務では、更新や削除のWHERE条件を誤ると影響範囲が大きくなります。
まとめ(試験直前用)
- WHERE句は「条件に一致する行」を対象にするSQLの構文
- JOINはテーブル結合、WHEREは行の絞り込み
- WHEREは集計前、HAVINGは集計後の条件
- SELECTだけでなくUPDATEやDELETEでも対象行の指定に使う
- DS検定では「何を絞る条件か」を見れば選択肢を切りやすい
対応スキル項目(データエンジニアリング力シート)
スキルカテゴリ:プログラミング
サブカテゴリ:SQL
★ SQLの構文を一通り知っていて、記述・実行できる(DML・DDLの理解、各種JOINの使い分け、集計関数とGROUP BY、CASE文を使用した縦横変換、副問合せやEXISTSの活用など)
🔗 関連記事
- バッチ処理とストリーム処理の違いとは?リアルタイム性で切り分ける【DS検定】
- FTP・SSH・SFTP・FTPSの違いとは?用途と暗号化を比較【DS検定】
- マッピング処理とは?データを対応づける基本操作【DS検定】
- 参照制約とは?FOREIGN KEY・REFERENCESと外部キーの意味【基本情報技術者試験】
- メールアドレスの正規表現とは?なぜ難しいのかを整理【DS検定】