データベーススペシャリストのテキスト

電車の中でデータベーススペシャリストのテキストを読んでいました。

ポケットスタディ データベーススペシャリスト (情報処理技術者試験)

ポケットスタディ データベーススペシャリスト (情報処理技術者試験)

読んでいたのはいいのですが…。
Amazonにもミスが多いというレビューが載っていましたが、確かに多いです。しかも、ケアレスミスかと思ったら、どうもそういうミスだけではないようです。
例えば、以下のような記述がありました。

  • GROUP BY句を書かないで集合関数を書くのは誤り
  • 集合関数の入れ子はできない

なんかもう一つか二つくらいあったのですが、とにかく集約関数周りがかなり怪しいものでした。そもそも、集合関数ってのがMINとかMAXとかSUMとかのことらしいんですが、これって集約関数とか集計関数とか言うんじゃないでしょうか。別にいいのかもしれませんけど。
一応言及しておくと、以下のSQLは普通に使えるはずです。

SELECT max(column) FROM table;

これはすべての行を1行に集約して、その最大値を表示します。

SELECT avg(sum(column)) FROM table GROUP BY column;

これはcolumn列ごとに合計値を求めて、その合計値の平均を出します。
どっちもちゃんと動くはずです。少なくとも、Oracle 10gとOracle 11gでは動くと思います。
なんか色分けがおかしいですね。はてなSQLの記法ってちゃんと色がつかないのでしょうか。
それでもせっかく買ったので、とりあえず読んでみることにします。