私は、グリットの異なる正方形(列「グリッド」でマークされている)にある時間属性(列「時間」)を持つポイントを持つテーブルを持っています。
各正方形について、時間ごとにグループ化された範囲内にあるポイントの数を取得したいので、24 列 + 既存のグリッド ID と同じ数の行を持つテーブルを取得します。
これまでのところ、24 個の leftjoin でそれを行いました (以下)。単純なループでクエリを単純化する方法はありますか?
SELECT * from (select gridid, count(id) as "00" from points where hour = 0 GROUP BY gridid ORDER BY "00" DESC)t00
left join
(select gridid, count(id) as "01" from points where hour = 1 GROUP BY gridid)t01
on t01.gridid = t00.gridid
left join
(select gridid, count(id) as "02" from points where hour = 2 GROUP BY gridid)t02
on t02.gridid = t00.gridid
...
left join
(select gridid, count(id) as "24" from points where hour = 24 GROUP BY gridid)t02
on t02.gridid = t24.gridid