私はSQLを初めて使用しており、以下のクエリは、ある期間内に0〜100 kmの間を移動した車両の数を計算することです。ここでdistance_two_points範囲内のデータを取得するには?
select 1 as "1 - 100",count (*) from (
SELECT extract (day from start_time) as day ,place, vehicle_id,sum(distance_two_points) as distance
FROM public.datatable where start_time >= '2015-09-05 00:00:00' and start_time <= '2015-09-05 23:59:59'
and place=1 group by day, place ,veh_id
order by day,place,veh_id) as A where distance >0 and distance<100
は、1回の旅行での距離を示しており、車両が、私は車の走行距離の合計を与える各vehicle_idためdistance_two_pointsの合計を取るtrip.So以上のものを持っています。
SELECT extract (day from start_time) as day ,place, vehicle_id,sum(distance_two_points) as distance
FROM public.datatable where start_time >= '2015-09-05 00:00:00' and start_time <= '2015-09-05 23:59:59'
and place=1 group by day, place ,veh_id
order by day,place,veh_id
は、すべての車両の総走行距離を返しますし、私は、私は次のように分類する
distance >0 and distance<100
代わりの1つのフィルタリングによってフィルタリングサブクエリ:
range count
______ ______
1-100 17
100-200 30
300-400 40
400-500 39
500-600 36
5つのクエリを組み合わせる代わりに、上記の結果を得る方法がありますか?どんな助けもありがとうございます。
あなたの質問は本当に混乱しています。あなたは 'sum(points)as length'を持ち、' where'節で 'length'を使います。それらは異なる長さです。 –
@ GordonLinoff以前よりクエリが編集されました –
申し訳ありませんが、以前よりも混乱しています... –