PostgreSQLでは、通常以下のように書くクエリを短縮して書くことができる。
SELECT request_month, COUNT(*)
FROM access_log
GROUP BY request_month
ORDER BY request_month
;
これはGROUP BY句で月ごとのアクセス数を集計し、ORDER BY句で月順に並べ替えをおこなうクエリだが、以下のように書いても全く同じ結果が得られる。
SELECT request_month, COUNT(*)
FROM access_log
GROUP BY 1
ORDER BY 1
;
「1」は1番目のカラムであるrequest_monthを表しており、このようにカラムの列番をGROUP BYやORDER BYに指定することで、コード量を減らすことができるのだ。
ただし多用しすぎると、後からコードを見たときに直感的に意味がわかりづらくなってしまうので、その場限りのクエリを書く場合に限りオススメされる方法だ。