[Gfoss] SpatiaLite conteggio righe tabelle database

a.furieri a lqt.it a.furieri a lqt.it
Lun 29 Apr 2019 23:16:46 CEST


On Mon, 29 Apr 2019 12:54:05 -0700 (MST), pigreco wrote:
> Salve a tutti,
>
> questa query:
>
> SELECT f_table_name,
>        eval('select count(*) from ' || f_table_name) AS nro_feature
> FROM geometry_columns;
>
> restituisce a video una tabella con nome geo-tabella e relativo 
> numero di
> righe, ovvero
> se un database ha 5 geo-tabelle restituirà una tabella con 5 righe e 
> due
> colonne: la prima colonna con i nomi delle geo-tabelle e la seconda 
> il
> numero complessivo di feature.
> Questa query utilizza la tabella 'geometry_columns' e quindi non 
> tiene conto
> delle semplici tabelle (cioè quelle senza il campo geometry).
>
> Come potrei scrivere una analoga query per conteggiare le righe delle 
> sole
> tabelle (quelle senza geometry)??
>
> Ci riesco con questa, ma sembra bruttina:
>
> SELECT tbl_name,
>        eval('select count(*) from ' || tbl_name ) AS nro_righe
> FROM sqlite_master
> where type='table'
> and name not like '%geom%'
> and name not like '%spatial%'
> and name not like '%sql%'
> and name not like '%raster%'
> and name not like '%SE%'
> and name not like '%vector_%'
> and sql not like '%geom%';
>

SELECT tbl_name,
        eval('SELECT count(*) FROM "' || tbl_name || '"') AS nro_righe
FROM sqlite_master
WHERE type='table'
AND name NOT IN (SELECT f_table_name FROM geometry_columns)
ORDER BY tbl_name;

ciao Sandro


Maggiori informazioni sulla lista Gfoss