SQL Hacks ―データベースを自由自在に操るテクニック

SQL Hacks ―データベースを自由自在に操るテクニック

SQL Hacks ―データベースを自由自在に操るテクニック

5章「数値の処理」
HACK #29 COUNT関数を使わずに件数を数える
select count(*) from foo;
のかわりに、
select count(1) from foo;
とも書ける。
1って一番目の列?つまりrowidか何か…?
と思ってcount(2)等試してみたけど、count(*) と同じ結果が帰ってくる。
3でも4でも同じ。
不思議…覚えても役に立たない気がするw けど、読めるように覚えておこう。
同じく#29の「条件付きのカウント」。
countとwhereのかわりに、以下のようにも書けるというテクニック
select sum(case when a=1 then 1 end) from foo;
これは何に使うのか…?
WHEREでフィルタリングせずにSUMを使用するメリットは、1つのSQL文で複数の集計条件を設定できるということだ。
なるほど!!このHACKは役に立ちそう。
8章「小さいデータの格納」
HACK #58「データベースにパラメータを保存する」
通常、「CORSS JOIN」はパフォーマンスに影響を与える処理の目印にもなるが、paramテーブルに1行しか存在しないことがわかっているので、ここでは問題ない。
大丈夫だろうなと思ってことがハッキリ「問題無い」と書かれてたんで、これから1行のテーブルに対してクロスジョインは、ためらうことなく使うぞー(でも他の手段があれば避けるつもり)