[記事公開日]2015/01/17
[最終更新日]2016/11/29

基本情報技術者試験 8-7(SQL並び替え、グループ化)

◆「ORDER BY」句を覚えましょう。

 

SQLでは同じ結果でも、様々な書き方ができます。

「この中で同じ結果になる式はどれか?」といった出題がされます。

 

選択肢のそれぞれで結果が出せるようになれば、

難なく答えられます。

 

一問一答の暗記問題ではないので考えれば時間が掛かります。

ささっと答えて次に進めるようにしましょう。

 

ではいきます..

 

「ORDER BY」によって結果表示の並び方を指定する

ことができます。

SLECT 日付列 商品名列 個数列

FROM 売上表

のあとに、

ORDER BY 日付列 ASC

と記述します。

「ASC」によって、日付列を主軸に昇順(小さい方から)になります。

ここを「DESC」にすると、降順(大きいほうから)になります。

何も書かなければ、昇順(小さい方から)になります。

 

◆「GROUP BY」句を覚えましょう。

さきほどと同じように、

「SELECT」「FROM」の後に書きます。

 

同じ項目があれば、

ひとつにまとめて表示されます。

 

<例1>

SLECT 商品名,数量

FROM 注文明細

GROUP BY 商品名

8--7

 

今度は、順番を整えたら、

合算できるものは合算してしまいましょう。

 

<例2>

SLECT 商品名,SUM(販売数量)

FROM 販売表

GROUP BY 商品名

GROUP1

 

 

次は、結果として出た表の列名を変更してみましょう。

 

<例3>

SLECT 商品名 , SUM(販売数量) AS 合計数量

FROM 販売表

GROUP BY 商品名

GROUP2

「AS」は英語で「~として」という意味です。

「販売数量」を「合計数量」と表示させることができます。

「,」で区切られていることを確認しましょう。

商品名も別の名前にしたければ、

「商品名 AS 登録名称 , 販売数量 AS 合計数量」

と書きます。

 

<例4>

SLECT 商品名,SUM(販売数量) AS 合計数量

FROM 販売表

GROUP BY 商品名

HAVING SUM(販売数量)>200

GROUP3

販売数量が200以上の列を出力します。

 

<例5>

SLECT 注文日,AVG(数量)

FROM 注文明細

GROUP BY 注文日

GROUP4

「AVG」の他にも

・SUM :総和を求める。
・MAX  :最大値を求める。
・MIN  :最小値を求める。
・AVG  :平均値を求める。
・COUNT : 総数を求める。

があります。

 

さらに詳しくなると、

空白を計算に入れるor入れないとか、

小数点はどこまでといった指定ができます。

 

基本情報試験ではそこまで出題されませんので、

ご安心を!!

 

次の章でSQLは最後になります!