[QGIS-it-user] Primi 3 elementi maggior per ogni gruppo in SpatiaLite/QGIS

Giuliano Curti giulianc51 a gmail.com
Mer 1 Feb 2017 09:26:46 PST


On 2/1/17, matteo <matteo.ghetta a gmail.com> wrote:
> Ciao a tutti,

ciao Matteo,


> ho un problemino che pensavo fosse semplice e invece mi sta facendo
> diventare matto.
>
> Ho un layer in QGIS (caricato anche in un DB SL) dove ho una colonna
> numerica e un'altra colonna con un id (diciamo di aggregazione).
>
> Sto inutilmente cercando di estrarre i primi 3 valori maggiori della
> colonna numerica per ogni id, ovvero trasformare questa semplice query:
>.......................
> Qualche spunto?

per il prelievo dei primi 3 elementi proverei a:
- generare una vista ottenuta da un SELECT * FROM .... ORDER BY ele
- aggiungerei un campo 'ord' (durante la creazione o a posteriori)
autoincrementale (mi sembra si possa anche se non ne ho esperienza
diretta :-) o più semplicemente si può forse utilizzare ROWID
- estrarrei dalla vista i primi 3 elementi con SELETC * FROM ....
WHERE ord < 4 (o ROWID < 4);

per confinare la ricerca in ogni categoria metterei una clausola WHERE
id = categoria_voluta nella prima query e ripeterei il metodo detto
sopra per ogni categoria (penso che si possa anche automatizzare il
tutto con istruzioni nidificate, ma.....

prima di smadonnare ricorda che il suggerimento arriva da uno
abbastanza profano di SQL da essere perdonato per le eventuali
castronerie (ma abbastanza interessato di conoscere la soluzione
migliore che spero posterai);

> Grazie a tutti
>
> Matteo

ciao,
giuliano


Maggiori informazioni sulla lista QGIS-it-user