WHAT'S NEW?
Loading...

MySQLでクロス集計してみた【2/2】

先日のSQLでクロス集計した際、助言をいただけて別の方法で解決した(Dupont氏に感謝)。

俺なりに何が違うのか考えてみた結果、
  • sum()とcount()で結果が違う
  • coalesce()関数とは
の2点に絞って調査してみた。

まず前回俺が書いたSQLは以下になる。
select name as '商品名',
 count(case when color='白' then 1 else null end) as '白',
 count(case when color='黒' then 1 else null end) as '黒',
 count(case when color='赤' then 1 else null end) as '赤',
 count(case when color='青' then 1 else null end) as '青',
 count(case when color='緑' then 1 else null end) as '緑',
 case
  when name='ビックリ弁当箱' then sum(field(name, 'ビックリ弁当箱'))
  when name='最果てグローブ' then sum(field(name, '最果てグローブ'))
  when name='無駄毛ロンガー' then sum(field(name, '無駄毛ロンガー'))
  else null
 end as '合計'
from history
group by name with rollup
そしてDupont氏の助言は以下。
SELECT COALESCE(`name`, '合計') AS `商品名`,
SUM(CASE WHEN `color`='白' THEN 1 ELSE 0 END) AS '白',
SUM(CASE WHEN `color`='黒' THEN 1 ELSE 0 END) AS '黒',
SUM(CASE WHEN `color`='赤' THEN 1 ELSE 0 END) AS '赤',
SUM(CASE WHEN `color`='青' THEN 1 ELSE 0 END) AS '青',
SUM(CASE WHEN `color`='緑' THEN 1 ELSE 0 END) AS '緑',
COUNT(*) AS `合計`
FROM `history`
GROUP BY `name` WITH ROLLUP;
※COALESCE()関数とWITH ROLLUPは条件が一緒になるように追記してる

大文字小文字は抜きにして、基本的にcount()がsum()になっている点と、小計がcase式か、count()か、という点が大きく違う。

Windowsをちゃんと使って仕事を楽にする【3/3】

パソコンがおかしくなってから

え、パソコンって壊れるんだ!

と言う人もいた。そりゃ電気製品だし、立派に諸行無常の理を表すわけですよ。

それとは別に、たとえば描画が追いつかなくて一時的に画面が崩れたりしたら、

あ、壊れた!買い買える!

とか、

あ、壊れた!どうしよう買ったばかりなのに!

とか、慌てふためく人も多くいた。買ったばかりというのは大抵1年以上たっていたりするわけで、別にどうでも良い話し。

ところで、おかしくなってからあわててデータをバックアップしても、なかなかうまく行かない場合がある。すぐに終わるときはまるで壊れてないかの様にスムースに話しが進むのだが、意外に致命的な不具合が起きてしまっても正しく起動しちゃったりするので、かなり性質が悪い。

たとえばboot.iniが破損すると、Windowsがウンともスンとも言わなくなる場合が多いが、MFTが破損した場合、Cドライブなら致命的だが、Dドライブなどの物理的に別のドライブだった場合、なんと正しく起動してしまうわけだ。

そして、Dドライブを使おうとしたりして、アクセスが始まると、まるで時間が止まったかのように、パソコンは何も反応しなくなる。

Windowsをちゃんと使って仕事を楽にする【2/3】

さて、普段は絶対に使わなさそうな方法でアプリケーションを起動してみてどう思っただろうか。

昔(20年ほど前)の、いわゆるマイコンと言われた時代では、デスクトップ、アイコン、フォルダなどの仕組みは全く搭載されておらず、当然マウスというものもなかった。すべてキーボードで操作する。

MSX(1983年)の画面

その時代を経験している人としていない人では、基本的にコンピュータに対する操作自体に大きな差があるとおもう。

しかし、正直言ってWindowsやMac OS系のインタフェースからコンピュータを始めた人にとっては、

そんな太古のネタなんかしらんがな!!

で一蹴されてYOU LOSE!

Windowsをちゃんと使って仕事を楽にする【1/3】

大抵町のパソコン教室ってのは、パソコンは教えてない。

では高い金を払って若造に何を教わっているのか。
それは、Microsoft Officeである。

つまり、Microsoft Officeが使えるようになれば、それはパソコンが得意だという事になってしまう。

正直、ハショりすぎだと思う。

俺は幼少の頃からコンピュータをいじっているから、1995年だか1996年だかにWindows95を初めて触ったとき、特に抵抗はなかったが、それにしても昨今、誰かに教わらないと何も覚えられないというのはあまり理解したくない事実である。遺憾である。

なぜなら、

コンピュータは人間を補佐するべき存在

であるのに、補佐する側の使い方が分からないと言うのは、全く持って本末転倒だからだ。補佐される側が余計な消耗を繰り返してしまう。全く逆の効果だ。

そもそもコンピュータというのは計算機だ。だから計算は得意。

ゲームだって計算だし、ペイントで絵を書くのも計算だ。CPUがしっかり計算してくれた結果、アプリケーションがアプリケーション毎に決められた手順で画面に文字などを表示しているに過ぎない。

もし画面への結果を求めないでいい場合、たとえばbeepとコマンドを打つと音が鳴るだけで、画面には何も表示はしない、なんて場合もあるが、大抵、最近のアプリケーションは画面を構成している。つまりGUIを持っている。

たとえば音が鳴ったらインジケータが上下する、などの表示が存在するわけだ。必ずといって良いほど、画面に何かを表示させると言う、リソースの無駄遣いを意図的にさせているわけだ。

MySQLでクロス集計してみた【1/2】


たとえば
  • 最果てグローブ
  • 無駄毛ロンガー
  • ビックリ弁当箱
の3つの商品がそれぞれ
の色バージョンがあったとして、
それぞれどれだけ売れたのかを集計とかやってみる。

似たような作業が実務で発生し、SQL未熟者の俺としては、これはぜひ覚えたいと思い、いろいろ試行錯誤してみたら出来たので、備忘録がてらかいておく。

結果として、イメージされる表にするとこういう感じ。

商品名
ビックリ弁当箱11212
最果てグローブ22210
無駄毛ロンガー10212

都道府県別に男女数を出すような、こんな感じをイメージしてもよい。

都道府県
東京都 58
神奈川県 47
千葉県 031


メールを無断で無許可に削除してくれるThunderbirdからOperaに移行する【3/3】

さて、Operaメーラを使ってみていただけてるだろうか。
使う気がないのであればすぐに去ると良い。

今回はOperaメーラならではの機能を簡単に紹介しようと思う。

その前に一言。

ThunderbirdからOperaへメーラをチェンジ!というのを強く推奨しているわけではなく、ただThunderbirdを使っていたけどいやになったのでほかに何かメーラないかな、あ、Operaがあるじゃん!そして使ってみたら意外にこれ良いお!!!というだけの話しだ。

なので、ThunderbirdからOperaにメールをインポートするのは、デフォルトの機能を使った方法のみを説明しておく。しかも欄外に。
  1. 「設定」>「インポート/エクスポート」>「メールをインポート」を選択
  2. 「アカウントウィザード」が開くので「Thunderbirdからインポート」を選択して「次へ」
  3. 「開く」ボタンでThunderbirdのプロファイルデータ(デフォルトだとC:\Documents And Settings\<ユーザ名>\Application Data\Thunderbird¥Profiles\<ハッシュ値>\prefs.js)を選択
  4. 「インポート項目」にインポート可能なメールボックスが表示されるので中身を確認しておく
  5. 「<新規アカウント>」の部分を、Operaに存在するどのアカウントにインポートするか選択する(「設定をインポート」チェックボックスが自動でON/OFFされる)
  6. 「メールをインポート」にチェックが入っているのを確認し、「次へ」ボタンをクリック
  7. ほかにインポートしたい項目があれば4から繰り返す
ただ、Thunderbird自体をアンインストールしなければ、いつでも起動してしまえば中身を確認できるよね?と言いうことで、上記方法で思った通り出来なかったとしても、自分で調べて欲しい。

メールを無断で無許可に削除してくれるThunderbirdからOperaに移行する【2/3】

まずはOperaをダウンロードするところからはじめる。
Operaのダウンロード先はここだ。

「地球上で最速のブラウザ」と歌っているが、まぁ表示が速い事は事実なので鵜呑みにしてみるとする。

間違えても携帯版のOperaを選んではいけない。あくまでPCで使うのが目的だ。

ダウンロードしたらほかのアプリと同じようにインストールしよう。ここまでは特に問題ないはずだ。

さて、Operaを起動してみると、どこからメールを使えるようになるのかが良く分からない形になっている。

というのも、前回書いたが、まずはメールアカウントを作成しないと、メールというツールメニューは表示されないようになっているので、兎に角メールアカウントを作成しようじゃないか。
ここでは仮に、以下のようなアカウントを使う事とする。

アカウント名オガーン
メールアドレスogaaaan@example.com
ユーザ名ogaaaan
パスワードshiranugahotoke
送信サーバsmtp.example.com
受信サーバpop.example.com

もちろん上記情報は嘘偽りを含んだ情報なので、実際には存在しないことを断っておく。
自分のメールを送受信したいのであれば、上記項目をすべて自分のアカウントに置き変えて、以下読み続けると寝覚めが良いだろう。

で、早速Operaに自分のアカウントを登録してみようじゃないか。

メールを無断で無許可に削除してくれるThunderbirdからOperaに移行する【1/3】

ずっとThunderbirdを使ってメールを送受信してきた。バージョン1の時からだ。

その前はシェアウェアのBecky!を使っていたが、どうしてもLinuxとWindowsで共通のメーラを使いたかったので、Thunderbirdに替えたと言う流れである。

Becky!は今でもお勧めのメーラだ。だけど俺はThunderbirdに完全移行した。

バージョン1のThunderbirdは、そりゃもう酷いのなんのって、受信ボックスが壊れるわけですよ。復旧しようにも、当時は情報が皆無。頭に来て全部消した。

バージョン2のThunderbirdは、そりゃもう酷いのなんのって、受信ボックスが壊れるわけですよ。復旧しようにも、すでにメールが削除されてしまっているので、できない。

バージョン3のThunderbirdは、そりゃもう酷いのなんのって、特定のメールフォルダが勝手に削除されたりするわけですよ。復旧しようにも、数百通あったメールのファイルサイズがすでにして2kbとか、すでにこれ消えてるよねって結論に至る。実際消えてたし。

FireFoxもそうだけど、どうもMozillaの製品は長く使うに耐えうるものではないと言う結論を出したくなる現象が多発する。

個人的には、メールというプロトコル、メーラというソフト、そして仕事や携帯でメールを使うと言う文化が大嫌いなんだけど、すでにそういった環境が普通になりつつあり、メールを読まないと怒られるという、意味不明な文化が社会的に浸透し切ってしまっているので、ご他聞にもれず俺もメーラを使うことにはしている。

メールというのをその程度の低質なものと理解しているので、たかがメールなんかのために、アホみたいに復旧タスクなんかをこなしたくないと思っている。

だから不具合が出れば、すぐに別のメーラを使うようにしている。今回はThunderbird3をやめる事にした。

さよならThunderbird。ありがとうとは言わないよ。