ミノです。
1次試験もいよいよ、3週間を切ってきました。
しばらくブログ更新していないですが、多くの方に見ていただき、ありがとうございます。
本日は、「経営情報システム」SQL文について、解き方を解説します。
ほぼ毎年出題されている頻出問題ですが、プログラムを理解できないと最初から
この問題を捨てている方が多くいるのではと思い、文系の方でもわかるように、
データベースの表と問題文を関連付けて説明したいと思います。
表1のような表がデータベースです。これは、ある買い物の記録のデータベースとします。
縦列を“カラム”といい、データベースの項目になっています。
表2のような横列がレコードです。このレコードをいくつも集めてデータベースを構成しています。
さてSQL文ですが、
SELECTは、カラムを選ぶ操作に使われます。複数のカラムを選ぶことも、
この例のようにカラムの集計(SUM)や、平均(AVG)も行えます。
ここでは、カラムpriceの集計と、
カラムdateを選んでいます。
FROMは、データベースのtableを指し示します。ここでは、“purchase”を選んでいます。
WHEREは、条件を示します。ここでは、カラムcategoryの食費を抜き出すように
指示しています。
GROUP BY は、グループにするくくりを指示しています。
ここでは、カラムdate ごとにグループ化しています。
表3の色分けがグループを示します。7/1,7/2,7/3ごとにグループ分けしています。
そしてグループの中で、食費のみを集計することをここまでで、SQL文は指示しています。
そしてHAVINGです。これは、グループごとの状態での条件を示しています。
ここでは、集計した価格が400円を超えたグループを要求しています。
ただし、この集計の価格は、WHEREで食費を選ぶことが条件付けられています。
表4にグループ化された中での食費の合計を示しています。
したがってこのSQL文で求める答えは、7/3グループの420円となります。
私が、一次試験を受けた時、WHEREとGROUP BY と
HAVINGの条件文の意味付けを明確に分かっていなかったので、
ときどき混乱していたのを思い出して、今回整理してみました。
あともう少しです。1次試験の結果が良いことをお祈りいたします。


