Useful Queries

From ecology
Revision as of 09:32, 27 September 2010 by Bart (talk | contribs) (Created page with "= 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(35...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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