Useful Queries
Useful Queries
Judy had al een query om de totale afstand te bepalen voor een ID. Dat was :
select sum(distance)/1000 as total_distance from gps.get_uvagps_track_speed(355);
Als je dat voor alle ID’s tegelijk wilt doen krijg je bijvoorbeeld iets van :
select device_info_serial, (select sum(distance)/1000
from gps.get_uvagps_track_speed(device_info_serial)) as total_distance
from gps.uva_device
dat duurt even.
Ik kan me voorstellen dat je dat alleen voor een bepaalde tijdsperiode wilt zien. Dan heb je bijvoorbeeld :
select device_info_serial, (select sum(distance)/1000
from gps.get_uvagps_track_speed(device_info_serial, '2010-01-01 00:00:00', '2011-01-01 00:00:00')) as total_distance
from gps.uva_device
2)
In SQL heb je de GROUP BY clause, die het mogelijk maakt om aggregaties zoals som, aantal, gemiddelde, te groeperen volgens bepaalde criteria zoals ID
Het totaal aantal positiemetingen per ID is dan :
select device_info_serial, count(*) from gps.uva_tracking group by device_info_serial;
Als je alleen de valide metingen met gps fix wilt hebben voeg je nog een conditie toe waar de latitude niet null is
select device_info_serial, count(*) from gps.uva_tracking where latitude is not null group by device_info_serial;
Een als je zowel het aantal meteingen met gps fix als zonder wilt zien per device kun je iets doen als :
select device_info_serial, latitude is not null as valid, count(*) from gps.uva_tracking group by device_info_serial, valid order by device_info_serial, valid;
Ik zal dit in de WIKI zetten .
Met vriendelijke groet,
Bart Heupers