SQL : Différence entre versions
De Raildar
(→Calcul du CRC des codes ICU à partir du code DUA) |
m |
||
(4 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | = Dédoublonnage des trains TER/Transilien = | ||
+ | <code> | ||
+ | * select distinct(right(code, 12)), count(id_train) as compt from trains group by right(code,12) ORDER BY compt; | ||
+ | </code> | ||
= Trouver les numéros de trains passant à 2 ou plusieurs gares = | = Trouver les numéros de trains passant à 2 ou plusieurs gares = | ||
<code> | <code> | ||
Ligne 11 : | Ligne 15 : | ||
= Conversion Lambert II étendu => GPS = | = Conversion Lambert II étendu => GPS = | ||
<code> | <code> | ||
− | + | select st_astext(st_transform(st_geomfromtext('point(592777 2432635)', 27582), 4326)); | |
</code> | </code> | ||
+ | |||
+ | = Calcul du geom de la table wikilocation = | ||
+ | <code><pre> | ||
+ | alter table live_fr add geom geometry(Point,4326); | ||
+ | update live_fr set geom=ST_SetSRID(ST_MakePoint(lng, lat), 4326); | ||
+ | alter table live_fr drop lat; | ||
+ | alter table live_fr drop lng; | ||
+ | </pre></code> | ||
= Calcul du CRC des codes ICU à partir du code DUA = | = Calcul du CRC des codes ICU à partir du code DUA = | ||
Ligne 20 : | Ligne 32 : | ||
* si s2 >= 5 alors ajouter 1 à la somme également | * si s2 >= 5 alors ajouter 1 à la somme également | ||
* si s4 >= 5 alors ajouter 1 à la somme aussi | * si s4 >= 5 alors ajouter 1 à la somme aussi | ||
− | * x = modulo 10 du | + | * x = modulo 10 du résultat |
= Sortir une mission du moulinage GTFS RATP = | = Sortir une mission du moulinage GTFS RATP = | ||
+ | <code> | ||
select * from routes inner join trips on routes.id_route=trips.id_route inner join calendars on trips.id_service=calendars.id_service where short_route = '14' order by day_of_circu desc; | select * from routes inner join trips on routes.id_route=trips.id_route inner join calendars on trips.id_service=calendars.id_service where short_route = '14' order by day_of_circu desc; | ||
+ | </code> |
Version actuelle en date du 4 février 2014 à 23:39
Sommaire
- 1 Dédoublonnage des trains TER/Transilien
- 2 Trouver les numéros de trains passant à 2 ou plusieurs gares
- 3 Distance entre une geom et un point (en kilomètres)
- 4 Conversion Lambert II étendu => GPS
- 5 Calcul du geom de la table wikilocation
- 6 Calcul du CRC des codes ICU à partir du code DUA
- 7 Sortir une mission du moulinage GTFS RATP
Dédoublonnage des trains TER/Transilien
- select distinct(right(code, 12)), count(id_train) as compt from trains group by right(code,12) ORDER BY compt;
Trouver les numéros de trains passant à 2 ou plusieurs gares
- select count(distinct(trains.num)) from trains, missions where missions.id_mission in (select id_mission from arrets where id_gare in (57, 59) group by id_mission having count(distinct id_gare) > 1) and missions.id_train = trains.id_train;
Distance entre une geom et un point (en kilomètres)
- st_distance_sphere(geom_gare, st_geomfromtext('point(3.43 47.3)', 4326))/1000
Conversion Lambert II étendu => GPS
select st_astext(st_transform(st_geomfromtext('point(592777 2432635)', 27582), 4326));
Calcul du geom de la table wikilocation
alter table live_fr add geom geometry(Point,4326);
update live_fr set geom=ST_SetSRID(ST_MakePoint(lng, lat), 4326);
alter table live_fr drop lat;
alter table live_fr drop lng;
Calcul du CRC des codes ICU à partir du code DUA
- Code sous la forme ppsssssx
- faire la somme : 2 s0 + s1 + 2 s2 + s3 + 2 s4
- si s0 >= 5 alors ajouter 1 à la somme
- si s2 >= 5 alors ajouter 1 à la somme également
- si s4 >= 5 alors ajouter 1 à la somme aussi
- x = modulo 10 du résultat
Sortir une mission du moulinage GTFS RATP
select * from routes inner join trips on routes.id_route=trips.id_route inner join calendars on trips.id_service=calendars.id_service where short_route = '14' order by day_of_circu desc;