文系の人でも分かるSQL文の問題の解き方(経営情報システム)

NO IMAGE

ミノです。

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円となります。

 

私が、一次試験を受けた時、WHEREGROUP BY と 

 

HAVINGの条件文の意味付けを明確に分かっていなかったので、

 

ときどき混乱していたのを思い出して、今回整理してみました。

 

あともう少しです。1次試験の結果が良いことをお祈りいたします。