少しだけ教訓めいたことを書く
状況
- SQLTIEで、何でもクエリが書けて動くので喜んでいた
- POSTGRESに、クエリを移植しようとした
- ことごとくクエリが動かなかった
POSTGRES
例えば、以下のSQLだが、SQLITEだととにかく動いた。
しかし、POSTGRESだと怒られる。
→ 要するにGROUP BYをするときは、集合関数を使ったもの以外はダメだと。この場合はIDがそもそも、集合に値しない
→ メッチャ基本やねえ。。。
select id, sum(data) from table group by data
次のサブクエリはSELITEだと問題なく動いた。
しかし、POSTGRESだと確実に怒られる。
→ selectにはちゃんとエイリアスをつけなさいと・・・
詳細
select * from
(select * from table)
select a.* from
(select * from table) as a
その他
先ほどのGroup byにも関係するが、改めてGROUP化させたテーブルに、元のテーブルをjoinしたり
GROUP化したものをHaving句で処理したり、いろんなテクニックを学んだ。
Postgresは、ポイントさえ掴めば、ちゃんという事を聞いてくれるデータベースだった。