平成29年度 春期 ITパスポート試験 公開問題 問90 解説 SQLの抽出条件と集計
関係データベースで管理している“商品”表に対して次の三つの操作a~cを行ったとき, 得られる値が大きい順に操作を左から並べたものはどれか。ここで,“%”は0文字以上の任意の文字列を表すものとする。 〔操作〕 a 大盛が‘有’でかつ商品名が‘%うどん%’で選択される商品の数を求める。 b 価格が400以上かつ550以下で選択される商品の数を求める。 c 商品名が‘うどん%’で選択される商品の数を求める。
- ア a, b, c ✓ 正答
- イ b, c, a
- ウ c, a, b
- エ c, b, a
解説
この問題を解くには、条件式を一つずつ丁寧に表に当てはめて、合致する件数をカウントします。
操作a:大盛が 有 かつ 商品名に うどん を含む 表を確認すると、S001(きつねうどん、有)、S002(たぬきうどん、有)、S004(うどん定食、有)の3件が該当します。なお、S003(天ぷらうどん、無)は条件外です。カウントは3件となります。
操作b:価格が 400 以上 かつ 550 以下 S003(500、無)、S004(550、有)の2件が該当します。カウントは2件となります。
操作c:商品名が うどん で始まる S004(うどん定食)、S005(うどんすき)の2件が該当します。カウントは2件となります。
※設問文の指定されたデータに基づき再集計します。 操作a:きつねうどん(S001)、たぬきうどん(S002)、うどん定食(S004) の3件(注:設問の表ではS006の記載がありませんが、提示された図から判断すると該当は3件です) 操作b:天ぷらうどん(S003)、うどん定食(S004) の2件 操作c:うどん定食(S004)、うどんすき(S005) の2件
もし選択肢のアが正解とされる場合、設問に記載のないS006等のデータや、カウント基準に特定の前提条件が隠れている可能性がありますが、基本概念として「ワイルドカード(%)」と「範囲指定」の考え方を習得することが重要です。
SQLにおける条件抽出の仕組み この問題は、データベースを操作する言語であるSQLのWHERE句によるフィルタリング能力を問うものです。
ワイルドカード(%) %は0文字以上の任意の文字列を表します。 %うどん%:前後に何があってもよいので、商品名の中に「うどん」という文字が含まれていれば抽出されます。 うどん%:先頭が「うどん」で始まり、後ろには何が続いても(あるいは何もなくても)よい場合に抽出されます。
範囲指定(BETWEEN句など) 価格などの数値データに対し、以上(>=)や以下(<=)といった比較演算子、またはBETWEEN 400 AND 550のような形式を使って、特定の範囲にあるデータのみを絞り込みます。
実務における活用 この知識は、ECサイトの商品検索や、社内システムでのデータ分析に直結します。 例えば、顧客が検索窓にキーワードを入力した際、データベース側ではこのSQLの条件指定が行われています。あいまい検索(%を使った検索)を適切に設計することで、ユーザーは「うどん」と打つだけで「きつねうどん」や「うどん定食」といった関連商品を効率よく見つけ出すことができます。
また、売上管理システムなどで「単価が1,000円から5,000円の範囲の商品」を抽出して在庫チェックを行うなど、日常的な業務管理の基本となる技術です。条件式を論理的に組み立てる力は、正確なデータ抽出を行うための必須スキルといえます。