気がつけば、もう週末。
最近久しぶりにがっついて働いてる。 約2年振りの"1プログラマー"。 やっぱたまにはこうじゃないと毎日張りがない。
今使ってるフレームワークははじめて使うもので。 ただ誰かのソースをコピペして使うだけじゃなくて。 ちゃんと処理の流れをトレースしながら。
機能的には全然余裕かなと思ってたんだけど、 いかんせん仕様がかなり複雑で。
こんなに業務べったりなのは久しぶり。
ってかぶっちゃけ新人レベルのしょうもないことに小一時間悩んでしまった。
12個表示する項目があって、それぞれいろんなとこからカウントをとってくる。 カウントってことは0件でも0が返ってくんだから一発のSQLでいけるよなぁと。
でとりあえずサササって書いてみた。↓こんなかんじ。
SELECT DISTINCT ( SELECT COUNT() FROM TABLE_A A, TABLE_B B WHERE A.FOO = '1' AND B.BAR = '1' ) AS CNT_1, ( SELECT COUNT() FROM TABLE_A A, TABLE_B B WHERE A.FOO = '2' AND B.BAR = '2' ) AS CNT_2, ( SELECT COUNT(*) FROM TABLE_A A, TABLE_B B WHERE A.FOO = '3' AND B.BAR = '3' ) AS CNT_3, FROM TABLE_A,
TABLE_B
・・・。 なんかすげぇ納得いかねぇ。 DISTINCTと最後のFROM句。意味ねぇじゃんって。なんか頭悪くね?
しかしなかなかどうしたら良いか思い浮かばない。 SQLの本で調べたり、ネットで検索したり。
で、後輩にチョロっと話かけてみる。 え?んなもんFROM句にビュー作ればいいじゃないすか。
あーー。そーね。FROM句ね。 そーすりゃそのエイリアスでSELECTできるもんね。 そしたらDISTINCTしなくてもいいもんね。。。
もう何年開発やってんだろう、俺。。
こないだ上司に言われた。
「篠原ってSQL得意?火噴いてるプロジェクトで SQLのチューニングやる人が欲しいって言われててさ」
結局そこにアサインされることはなかったけど、正直ビクっとした。
SQLってどこのプロジェクトでも使うもの。 EJB CMPだORマッピングだっていってもSQLが分からない人が うまく使いこなせるとは思わない。
SQL書き方ドリルっていう小学生が算数とか勉強するのと 似たような感覚でSQLが勉強できる本をみつけた。 コレ買って勉強しようかと。
あーしかしもうチョイなんとかしねぇとなぁ。。