PHPで結果取ってきて、結果分ループさして、条件分岐さして配列に入れていくみたいな方法で今までやっていたんですが、実はこんなことしなくても良かった事に最近気がつきました。
SELECT文はカラムを指定するわけではない
SELECT文というのは対象のテーブルの「カラムを指定するだけのもん」だと思っていました。検索結果の「カラムを決める」のがSELECT文なんですね。つまりSELECTだけで結果は返ってくるんです。
SELECT 1+1
1+1
2
1+1
2
この構文でも結果を得ることができます。
カラムの重複を省くdistinct句
SELECT文の中で対象のカラムを指定して、distinct句を使えば、対象のカラムの件数が重複していた場合、重複行の削除を行います。
ただし、別のカラムを指定してしまうとdistinct句の効果範囲が指定したカラムにまで及びます。
なので最終的な結果を得た時に被ってる行があって省きたい場合にはGROUP BY句で重複を省きたい行を指定するのが手っ取り早いと思います。
結果が出た時点で集計を終わらす
SELECT文の中で平均値の計算等を事が出来ます。
これを使って、例えば坪単価の計算をする事が出来ます。
selectで計算できることを知らなかったので、もう少しこれでスマートに書ける気がします。ITって奥が深いですね。