Ciao a tutti,
sto cercando di risolvere un problema che all’apparenza è molto semplice, ma non ne sto venedo fuori.
Ho una tabella con un campo [cod], il quale riporta un codice che può ripetersi.
Voglio differenziare tutti i record che hanno il medesimo valore in [cod], inserendo un numero sequenziale nel campo [cod_seq].
Il risultato atteso è tipo questo:
[cod] [cod_seq]
029.151 1
122.756 1
122.756 2
122.756 3
122.756 4
704.001 1
704.001 2
599.864 1
354.365 1
354.365 2
009.975 1
747.301 1
Una sorta di autoincremetale per gruppi.
Come posso calcolare il campo [cod_seq] in base ai valori presenti in [cod]?
Vorrei arrivare al risultato tramite una sql in sqlite, ma senza successo fin’ora.
Saluti e grazie!
Daniele
Ciao Daniele,
in PostgreSQL sarebbe facile con le funzioni finestra.
Non ho sqlite sotto mano adesso, ma forse una cosa così potrebbe funzionare:
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND a.ROWID >= b.ROWID) FROM tabella a
giovanni
···
Il 8 nov 2017 15:52, “Daniele Bonaposta” <daniele.bonaposta@gmail.com> ha scritto:
Ciao a tutti,
sto cercando di risolvere un problema che all’apparenza è molto semplice, ma non ne sto venedo fuori.
Ho una tabella con un campo [cod], il quale riporta un codice che può ripetersi.
Voglio differenziare tutti i record che hanno il medesimo valore in [cod], inserendo un numero sequenziale nel campo [cod_seq].
Il risultato atteso è tipo questo:
[cod] [cod_seq]
029.151 1
122.756 1
122.756 2
122.756 3
122.756 4
704.001 1
704.001 2
599.864 1
354.365 1
354.365 2
009.975 1
747.301 1
Una sorta di autoincremetale per gruppi.
Come posso calcolare il campo [cod_seq] in base ai valori presenti in [cod]?
Vorrei arrivare al risultato tramite una sql in sqlite, ma senza successo fin’ora.
Saluti e grazie!
Daniele
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Appena testato e confermo che funziona.
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND a.ROWID >= b.ROWID) AS cod_seq FROM tabella a
Se puoi conferma pure te ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
giovanni
···
Il giorno 8 novembre 2017 16:06, G. Allegri <giohappy@gmail.com> ha scritto:
Ciao Daniele,
in PostgreSQL sarebbe facile con le funzioni finestra.
Non ho sqlite sotto mano adesso, ma forse una cosa così potrebbe funzionare:
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND a.ROWID >= b.ROWID) FROM tabella a
giovanni
Il 8 nov 2017 15:52, “Daniele Bonaposta” <daniele.bonaposta@gmail.com> ha scritto:
Ciao a tutti,
sto cercando di risolvere un problema che all’apparenza è molto semplice, ma non ne sto venedo fuori.
Ho una tabella con un campo [cod], il quale riporta un codice che può ripetersi.
Voglio differenziare tutti i record che hanno il medesimo valore in [cod], inserendo un numero sequenziale nel campo [cod_seq].
Il risultato atteso è tipo questo:
[cod] [cod_seq]
029.151 1
122.756 1
122.756 2
122.756 3
122.756 4
704.001 1
704.001 2
599.864 1
354.365 1
354.365 2
009.975 1
747.301 1
Una sorta di autoincremetale per gruppi.
Come posso calcolare il campo [cod_seq] in base ai valori presenti in [cod]?
Vorrei arrivare al risultato tramite una sql in sqlite, ma senza successo fin’ora.
Saluti e grazie!
Daniele
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Confermo: funziona
grande Gio!
grazie!
···
Il giorno 8 novembre 2017 19:20, G. Allegri <giohappy@gmail.com> ha scritto:
Appena testato e confermo che funziona.
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND a.ROWID >= b.ROWID) AS cod_seq FROM tabella a
Se puoi conferma pure te ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
giovanni
–
Il giorno 8 novembre 2017 16:06, G. Allegri <giohappy@gmail.com> ha scritto:
Ciao Daniele,
in PostgreSQL sarebbe facile con le funzioni finestra.
Non ho sqlite sotto mano adesso, ma forse una cosa così potrebbe funzionare:
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND a.ROWID >= b.ROWID) FROM tabella a
giovanni
Il 8 nov 2017 15:52, “Daniele Bonaposta” <daniele.bonaposta@gmail.com> ha scritto:
Ciao a tutti,
sto cercando di risolvere un problema che all’apparenza è molto semplice, ma non ne sto venedo fuori.
Ho una tabella con un campo [cod], il quale riporta un codice che può ripetersi.
Voglio differenziare tutti i record che hanno il medesimo valore in [cod], inserendo un numero sequenziale nel campo [cod_seq].
Il risultato atteso è tipo questo:
[cod] [cod_seq]
029.151 1
122.756 1
122.756 2
122.756 3
122.756 4
704.001 1
704.001 2
599.864 1
354.365 1
354.365 2
009.975 1
747.301 1
Una sorta di autoincremetale per gruppi.
Come posso calcolare il campo [cod_seq] in base ai valori presenti in [cod]?
Vorrei arrivare al risultato tramite una sql in sqlite, ma senza successo fin’ora.
Saluti e grazie!
Daniele
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Daniele Bonaposta,
Cartografia - G.I.S.
via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com
Linkedin: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872
giohappy wrote
Appena testato e confermo che funziona.
SELECT cod, (SELECT count(*) FROM tabella b WHERE a.cod = b.cod AND
a.ROWID
= b.ROWID) AS cod_seq FROM tabella a
Se puoi conferma pure te ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
giovanni
Ciao,
confermo pure io.
ho realizzato un gist qui [0]
[0] https://gist.github.com/pigreco/b8e87cfd0dba5525d2fdb514d2fc71fa
saluti
-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html