Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

営業事務(マーケ担当)はSQLを覚えるべきだし、2時間で覚えられる。

qiita.com

めっちゃええ話。これはすごく意味がある。細かいツッコミをすれば、上記はSQLを簡単に投げられるようになった話でありSQLを駆使できるようになったわけではないのだけど、そのうち覚えるやろ。

弊社では商品企画を担当する社員がおりまして、ExcelでVLOOKUPはできるけどデータベースの操作はしたことがない、というレベルです。僕が隣でSQLを書いているのを見て、「これなら出来そうだから教えて」と言われたので、教えました。2時間の講習でここまで覚えてくれました。

  • データベースとテーブルの関係
  • SELECT,FROM,WHERE,LIKE,ORDER BY
  • JOIN,GROUP BY,CASE-WHEN
  • 簡単なDB関数

なので、「エプロンという品名の商材を抽出して、伝票日付が4月と5月の売上の2013年以降の年度別の対比が見たい」というSQLが書けるようになりました。具体的にはこんな感じです。

select
  year(e.billdate) as yearly,
  sum(case 
     	when month(e.billdate) = 4 then ed.ordernum
     	else 0
  	end) as 4月,
  sum(case 
     	when month(e.billdate) = 5 then ed.ordernum
     	else 0
  	end) as 5from
  earning_details as ed 
  join items as i on i.id = ed.item_id
  join earnings as e on e.id = ed.earning_id
where
 e.billdate >= 2013
and 
 i.name like '%エプロン%'
group by
  yearly

微妙に構文が違ったりすることはあるんですが、その辺はどうとでもなります。やってる内容がわかれば。

以下、説明に使ったナイストーク集です。

データベース is 何

Excelで例えました。データベースはブック、テーブルはシート。シートに名前があるように、テーブルにも名前がある。また、シートに作れるのは一覧表だけ。一番上の行にカラムの名前を決める。商品というシートならそこに品番、品名、売値などがあって、それと同じという話をした。3分で理解できました。

JOIN is 何

JOINは別テーブルにある同じカラムで参照することで表を連結することでーすと説明しました。売上明細には品番はないけど、商品IDというカラムがあります。売上明細の商品IDカラムは商品テーブルのIDと同じものですので、商品IDでくっつけると横になが〜い表ができるでしょという話をしました。3分で理解できました。

こまけぇこたぁいいんだ。SQLは集合指向であることさえ伝われば。

改めて思ったのは、SQLはSELECTが9割ってことでした。おしまい。