本日もお読みいただき、ありがとうございます。
牛の歩みも千里、みずのです。
先日、ふぞろいな合格答案プロジェクトでは春セミナーを開催しました。不慣れな進行で恐縮ですが、ご参加いただいた皆様ありがとうございます。
試験の時間配分についてのご質問があり、まっつの「2次試験の解答プロセス 事例Ⅱ 再現答案使用」を紹介させて頂きました。時間配分以外にも参考になる記事だと思いますのでよろしければご覧くださいね。
セミナーに参加された方は、本日(5/29)までにアンケートにお答えいただくと、動画配信しましたパワーポイント資料をお送りさせていただきます。ご協力よろしくお願い致します。
今回参加できなかった皆さまも次の機会ご参加をお待ちしておりますね。
それでは、前回は予定を変更して「出不精による自宅学習のコツ」をお送りしたため間が空いてしまいましたが「絶対取りたいSQL(その1)」の続きです。
「絶対取りたいSQL(その1)」ではデータを抽出するところまで書きました。今回は抽出したデータを計算したり、見やすく並べ替えることをテーマにお送りします。
「何をするために、どんな命令文を使うのか、実行したらどうなるか」を考えながら学習すると定着しやすいのではないかと思います。
目次
「単価」と「販売数量」がありますが、これを少し加工したデータがあったら良いなと思いませんか。例えば、もしも分析するとしたら「単価×販売数量」で売上金額は欲しいですよね。
そのような時は下記のように、列名を指定する箇所で代わりに計算式を書くことで計算結果を求めることができます。
例)
SELECT 商品名, 商品区分, 単価 * 販売数量 from 商品表
「*」を使うのはExcelと同じですね。加算などもExcelと同様です。
演算子 | 計算方法 |
+ | 加算 |
– | 減算 |
* | 乗算 |
/ | 除算 |
降順や昇順に並び変える(Excelでいうソートをする)には。ORDER BY句を使い、並び替えたい列と昇順/降順を指定します。
ASC / DESC を指定することで昇順/降順の並び替えができます。どっちがどっちか若干分かりにくいASCとDESCは下記のように覚えてました。
なお、ASCは省略可能です。言い換えると、ORDER BY句にASCもDESCも指定しない場合は昇順になります。
使用方法 | 効果 |
ORDER BY <列名> | 指定した列で昇順に並び替え |
ORDER BY <列名> ASC | 指定した列で昇順に並び替え |
ORDER BY <列名> DESC | 指定した列で降順に並び替え |
今週の商品の販売実績は下表のとおりであった。下表から売上金額を評価基準としたパレート図を作成して、来週の販売方策を検討したいと考えた。パレート図作成のため、まず売上金額の大きい順に商品を並べたデータを得るための SQL文として、最も適切なものを下記の解答群から選べ。
〔解答群〕
ア SELECT 商品番号, 商品名, 販売数 * (売価 – 仕入価格) FROM 販売実績表 ORDER BY 販売数 * 売価 ASC
イ SELECT 商品番号, 売価 – 仕入価格, 販売数 * 売価 FROM 販売実績表 ORDER BY 売価 – 仕入価格
ウ SELECT 商品名, 販売数 * (売価 – 仕入価格) FROM 販売実績表 ORDER BY 5 ASC
エ SELECT 商品名, 販売数 * (売価 – 仕入価格), 販売数 * 売価 FROM 販売実績表 ORDER BY 販売数 * 売価 DESC
ポイントは「売上金額の大きい順に商品を並べ」ですね。
「大きい順」は大きいものから小さいものへ順に並べる、つまり降順なのでDESCを指定する必要があります。
DESCを指定しているのがエだけなので確定します。
アとウはASCなので不正解、イはASCもDESCも指定していない=昇順なので不正解です。
解答には直接影響しませんが、「販売数 * 売価」で売上金額を計算しています。また、「売価 – 仕入価格」で商品1単位あたりの利益を求め、販売数量をかけることで粗利益を計算しています。
なお、()で括られている場合は「絶対取りたいSQL(その1)」で解説したANDやOR、普通の計算式と同様に()内が優先されます。
こうしてみると、売上金額が最も多いiiiよりも二番目のbbbの方が粗利は多かったり、fffは粗利が0というのが分かりやすくなりますね。
急きょ予定を変更した都合もあり、グループ化(HAVING)と関数(AVGやSUMなど)、表結合は、過去問の出題例のみとなりますが、学習を進めて頂ければ幸いです。
明日はいよいよ事例Ⅱ84点のとうへいによる試験中に考えたこと3部作の完結編です。明日に備えておさらいしたい方は下記の2本をご覧くださいませ。