Commit dd8a965d authored by Sergio Bruni's avatar Sergio Bruni
Browse files

m

parent 293eece2
**Elenca tutti i rinex della rete abruzzo**
### Elenca tutti i rinex della rete abruzzo
```
select n.name, s.code, r.day
from network n
......@@ -9,7 +9,8 @@ WHERE n.name = 'abruzzo' AND s.code like '%vt%'
AND day > '2016-05-10' AND day < '2016-05-30'
```
### Conta tutti i rinex della rete campania su db gpsdata
**Conta tutti i rinex della rete campania su db gpsdata**
```
select count(*) from rinex r
join station s
......@@ -21,7 +22,7 @@ WHERE n."name" = 'campania'
### Conta tutti i rinex della rete campania su DB gnss-europe
**Conta tutti i rinex della rete campania su DB gnss-europe**
......@@ -35,7 +36,7 @@ WHERE n.name = 'campania'
### Media dei files scaricati giornalmente da tutte le reti nel 2019
**Media dei files scaricati giornalmente da tutte le reti nel 2019**
```
select round(avg(cast("number of files" as numeric)), 2), round(avg(gb), 2) from (
......@@ -53,7 +54,7 @@ group by reference_date
### Cerca le stazioni senza alcun rinex associato
**Cerca le stazioni senza alcun rinex associato**
```
select s.id, max(n.name) from station s
......@@ -65,7 +66,7 @@ having max(r.id) is NULL
### Cerca le stazioni con almeno un rinex che abbia le coordinate valorizzate
**Cerca le stazioni con almeno un rinex che abbia le coordinate valorizzate**
```
select s.id,
......@@ -86,7 +87,7 @@ AND max(r.z_h) is not null
### Lista i rinex (uno per stazione) di stazioni con le coordinate da valorizzare
**Lista i rinex (uno per stazione) di stazioni con le coordinate da valorizzare**
```
select
......@@ -104,7 +105,7 @@ order by max(r.day) desc
###
```
### QUERY SU METADATI PER RICAVARE I LOG-FILE
**QUERY SU METADATI PER RICAVARE I LOG-FILE**
```
SELECT
......@@ -177,7 +178,8 @@ ORDER BY
w1.network_name, w1.station_code, w1.reference_date ASC
```
### QUERY DI TRASLATION_TABLE
**QUERY DI TRASLATION_TABLE**
```
select r.id,
r.antenna_type,
......@@ -213,7 +215,7 @@ select r.id,
AND r.id IN(19894916, 19795591)
```
### QUERY SU METADATI PER RICAVARE I LOG-FILE FATTA SUI RINEX CORRETTI
**QUERY SU METADATI PER RICAVARE I LOG-FILE FATTA SUI RINEX CORRETTI**
```
SELECT w1.network_name,
......@@ -310,7 +312,8 @@ WHERE
w1.network_name, w1.station_code, w1.day ASC
```
### cancella i primi 10 rinex della rete dpcgps
**cancella i primi 10 rinex della rete dpcgps**
```
delete from rinex WHERE ID in (
select id from rinex WHERE station_id in (
......@@ -323,7 +326,8 @@ select id from rinex WHERE station_id in (
### cancella tutte le stazioni della rete abruzzo
**cancella tutte le stazioni della rete abruzzo**
```
delete from station
WHERE network_id = (
......@@ -334,7 +338,7 @@ WHERE network_id = (
-------------------------------------------------------------------
### aggiorna a null i 5 campi dei metadati di tutti i rinex italpos
**aggiorna a null i 5 campi dei metadati di tutti i rinex italpos**
```
update rinex r
......@@ -352,7 +356,7 @@ AND n.name = 'italpos'
### INSERISCE UN RINEX
**INSERISCE UN RINEX**
```
insert into rinex (station_id, day)
......@@ -366,8 +370,7 @@ values (
'2099-12-12')
```
### CERCA CODICI STAZIONE DUPLICATI
**CERCA CODICI STAZIONE DUPLICATI**
```
select count(*) from (
......@@ -377,7 +380,7 @@ select count(*) from (
having count(*) > 1 ) a
```
### CERCA DEI RINEX DUPLICATI (STESSA DATA)
**CERCA DEI RINEX DUPLICATI (STESSA DATA)**
```
select distinct name from (
......@@ -391,7 +394,7 @@ select distinct name from (
having count(*) > 1) a
```
### MAX e MIN date di una specifica stazione
**MAX e MIN date di una specifica stazione**
```
select MAX(day) as max, `
......@@ -405,7 +408,7 @@ WHERE n.name = 'italpos' `
AND s.code = 'vvra'
```
### cancella tutti i rinex della rete abruzzo
**cancella tutti i rinex della rete abruzzo**
```
delete from rinex`
......@@ -416,7 +419,7 @@ WHERE station_id IN`(
WHERE n."name" = 'abruzzo')
```
### reti con almenno un rinex registrato
**reti con almenno un rinex registrato**
```
select DISTINCT(n.name)
......@@ -425,7 +428,7 @@ JOIN station s ON s.network_id=n.id
JOIN rinex r ON r.station_id = s.id
```
### disponibilita dati in un range di date
**disponibilità dati in un range di date**
```
select
......@@ -443,7 +446,7 @@ ON r2."day" = date::date
AND r2.station_id = 2;
```
### numero di rinex giornalieri per una rete in un intervallo temporale
**numero di rinex giornalieri per una rete in un intervallo temporale**
```
select
......@@ -471,7 +474,7 @@ ORDER BY tab.name, date::date
### Verifica se i marker di un dato elenco sono presenti nel database
**Verifica se i marker di un dato elenco sono presenti nel database**
```
SELECT const_code codice_olggps, COALESCE(n.NAME, 'MANCANTE') AS rete
......@@ -485,7 +488,7 @@ ORDER BY COALESCE(n.NAME, ''), const_code
### stazioni di una data rete (nel caso GALNET) presenti anche in altre reti
**stazioni di una data rete (nel caso GALNET) presenti anche in altre reti**
```
select max(s.marker), array_agg(n.name) as networks
......@@ -505,7 +508,7 @@ HAVING count(*) > 1
### rinex presenti su più di una rete
**rinex presenti su più di una rete**
```
select c quanti, count(*) quante_volte from (
......@@ -515,7 +518,7 @@ select count(*) c from rinex_file r JOIN rinex_file_network rn ON r.id=rn.id_ri
### stazioni presenti su più reti
**stazioni presenti su più reti**
```
select c quante, count(*) quante_volte, string_agg(marker, ', ') markers from (
......@@ -525,7 +528,7 @@ select c quante, count(*) quante_volte, string_agg(marker, ', ') markers from (
### Incrocio delle stazioni presenti su più reti con i file rinex per evidenziare probabili casi di omonimia
**Incrocio delle stazioni presenti su più reti con i file rinex per evidenziare probabili casi di omonimia**
```
select s1.id, s1.marker, networks, r.id_station from (
......@@ -545,7 +548,7 @@ ORDER BY id_station desc
### Incrocio delle stazioni presenti su più reti con i file rinex per evidenziare probabili casi di omonimia
**Incrocio delle stazioni presenti su più reti con i file rinex per evidenziare probabili casi di omonimia**
```
select s.id, max(s.marker), string_agg(n.name, ', ') from station s
......@@ -563,7 +566,7 @@ GROUP BY s.id
#### come sopra con evidenza del numero di rinex ripetuti per stazione
**come sopra con evidenza del numero di rinex ripetuti per stazione**
select s.marker, max(numero_casi_molteplici) as numero_casi_molteplici,
max(molteplicita_massima) as molteplicita_massima,
......@@ -662,8 +665,7 @@ group by id_station, id_rete
#### COMPLETA
**COMPLETA**
```
select
......@@ -727,7 +729,7 @@ having count(*) = 2
#### SUPERCOMPLETA Analisi doppioni tra due stazioni
**SUPERCOMPLETA Analisi doppioni tra due stazioni**
```
select
......@@ -799,7 +801,7 @@ from (
### Cerca le coppie stazione/rete per le quali esistono dei rinex (tabella rinex_file_network) ma non esiste il legame tra stazione e rete in tabella station_network
**Cerca le coppie stazione/rete per le quali esistono dei rinex (tabella rinex_file_network) ma non esiste il legame tra stazione e rete in tabella station_network**
```
select distinct id_station, id_network from (
......@@ -817,7 +819,7 @@ select distinct id_station, id_network from (
### Rinex relativi ad una specifica rete
**Rinex relativi ad una specifica rete**
```
select count(*) from rinex_file r
......@@ -832,7 +834,7 @@ where n.name = 'EUREF'
### Elenco stazioni ghost (nuove) nello stato WAIT associando, se presenti, le stazioni attive con stesso marker indicandone la posizione e la/le reti di appartenenza
**Elenco stazioni ghost (nuove) nello stato WAIT associando, se presenti, le stazioni attive con stesso marker indicandone la posizione e la/le reti di appartenenza**
```
select
......@@ -880,7 +882,7 @@ group by sg.marker, nsg.name
### Elenco delle stazioni attive a una distanza inferiore a 10 metri dalle stazioni ghost
**Elenco delle stazioni attive a una distanza inferiore a 10 metri dalle stazioni ghost**
```
select
......@@ -902,7 +904,7 @@ ORDER BY sg.marker, s.marker, n.name
#### File rinex associati palesemente a stazioni sbagliate
**File rinex associati palesemente a stazioni sbagliate**
```
select s.marker, r.name from rinex_file r
......@@ -915,7 +917,7 @@ order by s.marker
#### data ogni coppia di rinex duplicati esegue la differenza tra le posizioni x,y,z
**data ogni coppia di rinex duplicati esegue la differenza tra le posizioni x,y,z**
```
select
......@@ -976,7 +978,7 @@ from (
### cerca i rinex indicizzati per errore piu di una volta su diverse reti (vedi patch_duplicated_rinex_on_db.py)
**cerca i rinex indicizzati per errore piu di una volta su diverse reti (vedi patch_duplicated_rinex_on_db.py)**
```
select net,
......@@ -1005,7 +1007,7 @@ order by casi
#### identifica i file com md5uncompressed duplicato
**identifica i file com md5uncompressed duplicato**
```
select t1.id,
......@@ -1029,7 +1031,7 @@ ORDER BY t1.md5uncompressed
#### Evidenzia le stazioni recuperate da più reti con posizione media diversa. Quando le reti sono più di due non confronta tutte le possibili coppie ma solo ciascuna rete con la precedente in ordine di nome.
**Evidenzia le stazioni recuperate da più reti con posizione media diversa. Quando le reti sono più di due non confronta tutte le possibili coppie ma solo ciascuna rete con la precedente in ordine di nome.**
Esempio per reti A, B, C mostra B con A e C con B. In modo completo dovrebbe confrontare anche A con C
......@@ -1085,7 +1087,7 @@ OR diff_z > 10
#### Come sopra aggiungendo la mediana e calcolato su una singola stazione e due sole reti
**Come sopra aggiungendo la mediana e calcolato su una singola stazione e due sole reti**
```
select *
......@@ -1149,9 +1151,9 @@ FROM (
Rinex di una stessa stazione relativi a due reti. Questa specifica query trova i rinex comuni ed uguali uguali
**Rinex di una stessa stazione relativi a due reti. Questa specifica query trova i rinex comuni ed uguali uguali**
Va modificata per identificare quelli comuni e diversi. Per isolare quelli comuni m+bisogna (credo) sostituire la union con una join sul nome e recuperando gli id separati delle due tabelle. quando gli id son uguali i file sono uguali, quando gli id sono diversi i file sono diversi
**Va modificata per identificare quelli comuni e diversi. Per isolare quelli comuni m+bisogna (credo) sostituire la union con una join sul nome e recuperando gli id separati delle due tabelle. quando gli id son uguali i file sono uguali, quando gli id sono diversi i file sono diversi**
```
select max(name) from
......@@ -1174,3 +1176,87 @@ group by id
having count(*) = 2
```
**"Querone" ultima versione**
```
SELECT
w1.network_name,
UPPER(w1.station_code) AS station_code,
w1.id_station_network,
w1.reference_date AS day,
w1.receiver_type,
w1.receiver_number,
UPPER(w1.receiver_version) AS receiver_version,
w1.antenna_number,
w1.antenna_type,
w1.antenna_dome,
w1.antenna_delta_h,
w1.antenna_delta_e,
w1.antenna_delta_n
FROM
(
SELECT
n.name AS network_name,
UPPER(s.marker) AS station_code,
sn.id AS id_station_network,
r.reference_date,
UPPER(r.receiver_type) AS receiver_type,
r.receiver_number,
UPPER(r.receiver_version) AS receiver_version,
r.antenna_number,
r.antenna_type,
r.antenna_delta_h,
r.antenna_delta_e,
r.antenna_delta_n,
r.antenna_dome,
LEAD(n.name) OVER (ORDER BY marker, reference_date DESC) AS prev_network_name,
LEAD(upper(s.marker)) OVER (ORDER BY marker, reference_date DESC)
AS prev_station_code,
LEAD(r.receiver_number) OVER (ORDER BY marker, reference_date DESC)
AS prev_receiver_number,
LEAD(upper(r.receiver_type)) OVER (ORDER BY marker, reference_date DESC)
AS prev_receiver_type,
LEAD(upper(r.receiver_version)) OVER (ORDER BY marker, reference_date DESC)
AS prev_receiver_version,
LEAD(r.antenna_number) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_number,
LEAD(r.antenna_type) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_type,
LEAD(r.antenna_delta_h) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_delta_h,
LEAD(r.antenna_delta_e) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_delta_e,
LEAD(r.antenna_delta_n) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_delta_n,
LEAD(r.antenna_dome) OVER (ORDER BY marker, reference_date DESC)
AS prev_antenna_dome
FROM rinex_file r
JOIN station s ON s.id=r.id_station
JOIN station_network sn ON sn.id_station = s.id
JOIN rinex_file_network rn ON rn.id_rinex_file=r.id AND sn.id_network = rn.id_network
JOIN network n ON n.id=rn.id_network
WHERE
n.id = 40
AND r.status = 1
and r.reference_date > '0001-01-01'
and r.reference_date < '9999-01-01'
ORDER BY reference_date DESC
) AS W1
WHERE
w1.network_name IS DISTINCT FROM w1.prev_network_name
OR w1.station_code IS DISTINCT FROM w1.prev_station_code
OR w1.receiver_type IS DISTINCT FROM w1.prev_receiver_type
OR w1.receiver_number IS DISTINCT FROM w1.prev_receiver_number
OR w1.receiver_version IS DISTINCT FROM w1.prev_receiver_version
OR w1.antenna_number IS DISTINCT FROM w1.prev_antenna_number
OR w1.antenna_type IS DISTINCT FROM w1.prev_antenna_type
OR w1.antenna_delta_h IS DISTINCT FROM w1.prev_antenna_delta_h
OR w1.antenna_delta_e IS DISTINCT FROM w1.prev_antenna_delta_e
OR w1.antenna_delta_n IS DISTINCT FROM w1.prev_antenna_delta_n
OR w1.antenna_dome IS DISTINCT FROM w1.prev_antenna_dome
ORDER BY
w1.network_name, w1.station_code, w1.reference_date ASC
```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment